!function (e, t, n) {
    "use strict";
    !function o(e, t, n) {
        function a(s, l) {
            if (!t[s]) {
                if (!e[s]) {
                    var i = "function" == typeof require && require;
                    if (!l && i)return i(s, !0);
                    if (r)return r(s, !0);
                    var u = new Error("Cannot find module '" + s + "'");
                    throw u.code = "MODULE_NOT_FOUND", u
                }
                var c = t[s] = {exports: {}};
                e[s][0].call(c.exports, function (t) {
                    var n = e[s][1][t];
                    return a(n ? n : t)
                }, c, c.exports, o, e, t, n)
            }
            return t[s].exports
        }

        for (var r = "function" == typeof require && require, s = 0; s < n.length; s++)a(n[s]);
        return a
    }({
        1: [function (o, a, r) {
            var s = function (e) {
                return e && e.__esModule ? e : {"default": e}
            };
            Object.defineProperty(r, "__esModule", {value: !0});
            var l, i, u, c, d = o("./modules/handle-dom"), f = o("./modules/utils"), p = o("./modules/handle-swal-dom"), m = o("./modules/handle-click"), v = o("./modules/handle-key"), y = s(v), h = o("./modules/default-params"), b = s(h), g = o("./modules/set-params"), w = s(g);
            r["default"] = u = c = function () {
                function o(e) {
                    var t = a;
                    return t[e] === n ? b["default"][e] : t[e]
                }

                var a = arguments[0];
                if (d.addClass(t.body, "stop-scrolling"), p.resetInput(), a === n)return f.logStr("SweetAlert expects at least 1 attribute!"), !1;
                var r = f.extend({}, b["default"]);
                switch (typeof a) {
                    case"string":
                        r.title = a, r.text = arguments[1] || "", r.type = arguments[2] || "";
                        break;
                    case"object":
                        if (a.title === n)return f.logStr('Missing "title" argument!'), !1;
                        r.title = a.title;
                        for (var s in b["default"])r[s] = o(s);
                        r.confirmButtonText = r.showCancelButton ? "Confirm" : b["default"].confirmButtonText, r.confirmButtonText = o("confirmButtonText"), r.doneFunction = arguments[1] || null;
                        break;
                    default:
                        return f.logStr('Unexpected type of argument! Expected "string" or "object", got ' + typeof a), !1
                }
                w["default"](r), p.fixVerticalPosition(), p.openModal(arguments[1]);
                for (var u = p.getModal(), v = u.querySelectorAll("button"), h = ["onclick", "onmouseover", "onmouseout", "onmousedown", "onmouseup", "onfocus"], g = function (e) {
                    return m.handleButton(e, r, u)
                }, C = 0; C < v.length; C++)for (var S = 0; S < h.length; S++) {
                    var x = h[S];
                    v[C][x] = g
                }
                p.getOverlay().onclick = g, l = e.onkeydown;
                var k = function (e) {
                    return y["default"](e, r, u)
                };
                e.onkeydown = k, e.onfocus = function () {
                    setTimeout(function () {
                        i !== n && (i.focus(), i = n)
                    }, 0)
                }, c.enableButtons()
            }, u.setDefaults = c.setDefaults = function (e) {
                if (!e)throw new Error("userParams is required");
                if ("object" != typeof e)throw new Error("userParams has to be a object");
                f.extend(b["default"], e)
            }, u.close = c.close = function () {
                var o = p.getModal();
                d.fadeOut(p.getOverlay(), 5), d.fadeOut(o, 5), d.removeClass(o, "showSweetAlert"), d.addClass(o, "hideSweetAlert"), d.removeClass(o, "visible");
                var a = o.querySelector(".sa-icon.sa-success");
                d.removeClass(a, "animate"), d.removeClass(a.querySelector(".sa-tip"), "animateSuccessTip"), d.removeClass(a.querySelector(".sa-long"), "animateSuccessLong");
                var r = o.querySelector(".sa-icon.sa-error");
                d.removeClass(r, "animateErrorIcon"), d.removeClass(r.querySelector(".sa-x-mark"), "animateXMark");
                var s = o.querySelector(".sa-icon.sa-warning");
                return d.removeClass(s, "pulseWarning"), d.removeClass(s.querySelector(".sa-body"), "pulseWarningIns"), d.removeClass(s.querySelector(".sa-dot"), "pulseWarningIns"), setTimeout(function () {
                    var e = o.getAttribute("data-custom-class");
                    d.removeClass(o, e)
                }, 300), d.removeClass(t.body, "stop-scrolling"), e.onkeydown = l, e.previousActiveElement && e.previousActiveElement.focus(), i = n, clearTimeout(o.timeout), !0
            }, u.showInputError = c.showInputError = function (e) {
                var t = p.getModal(), n = t.querySelector(".sa-input-error");
                d.addClass(n, "show");
                var o = t.querySelector(".sa-error-container");
                d.addClass(o, "show"), o.querySelector("p").innerHTML = e, setTimeout(function () {
                    u.enableButtons()
                }, 1), t.querySelector("input").focus()
            }, u.resetInputError = c.resetInputError = function (e) {
                if (e && 13 === e.keyCode)return !1;
                var t = p.getModal(), n = t.querySelector(".sa-input-error");
                d.removeClass(n, "show");
                var o = t.querySelector(".sa-error-container");
                d.removeClass(o, "show")
            }, u.disableButtons = c.disableButtons = function () {
                var e = p.getModal(), t = e.querySelector("button.confirm"), n = e.querySelector("button.cancel");
                t.disabled = !0, n.disabled = !0
            }, u.enableButtons = c.enableButtons = function () {
                var e = p.getModal(), t = e.querySelector("button.confirm"), n = e.querySelector("button.cancel");
                t.disabled = !1, n.disabled = !1
            }, "undefined" != typeof e ? e.sweetAlert = e.swal = u : f.logStr("SweetAlert is a frontend module!"), a.exports = r["default"]
        }, {
            "./modules/default-params": 2,
            "./modules/handle-click": 3,
            "./modules/handle-dom": 4,
            "./modules/handle-key": 5,
            "./modules/handle-swal-dom": 6,
            "./modules/set-params": 8,
            "./modules/utils": 9
        }], 2: [function (e, t, n) {
            Object.defineProperty(n, "__esModule", {value: !0});
            var o = {
                title: "",
                text: "",
                type: null,
                allowOutsideClick: !1,
                showConfirmButton: !0,
                showCancelButton: !1,
                closeOnConfirm: !0,
                closeOnCancel: !0,
                confirmButtonText: "OK",
                confirmButtonColor: "#8CD4F5",
                cancelButtonText: "Cancel",
                imageUrl: null,
                imageSize: null,
                timer: null,
                customClass: "",
                html: !1,
                animation: !0,
                allowEscapeKey: !0,
                inputType: "text",
                inputPlaceholder: "",
                inputValue: "",
                showLoaderOnConfirm: !1
            };
            n["default"] = o, t.exports = n["default"]
        }, {}], 3: [function (t, n, o) {
            Object.defineProperty(o, "__esModule", {value: !0});
            var a = t("./utils"), r = (t("./handle-swal-dom"), t("./handle-dom")), s = function (t, n, o) {
                function s(e) {
                    m && n.confirmButtonColor && (p.style.backgroundColor = e)
                }

                var u, c, d, f = t || e.event, p = f.target || f.srcElement, m = -1 !== p.className.indexOf("confirm"), v = -1 !== p.className.indexOf("sweet-overlay"), y = r.hasClass(o, "visible"), h = n.doneFunction && "true" === o.getAttribute("data-has-done-function");
                switch (m && n.confirmButtonColor && (u = n.confirmButtonColor, c = a.colorLuminance(u, -.04), d = a.colorLuminance(u, -.14)), f.type) {
                    case"mouseover":
                        s(c);
                        break;
                    case"mouseout":
                        s(u);
                        break;
                    case"mousedown":
                        s(d);
                        break;
                    case"mouseup":
                        s(c);
                        break;
                    case"focus":
                        var b = o.querySelector("button.confirm"), g = o.querySelector("button.cancel");
                        m ? g.style.boxShadow = "none" : b.style.boxShadow = "none";
                        break;
                    case"click":
                        var w = o === p, C = r.isDescendant(o, p);
                        if (!w && !C && y && !n.allowOutsideClick)break;
                        m && h && y ? l(o, n) : h && y || v ? i(o, n) : r.isDescendant(o, p) && "BUTTON" === p.tagName && sweetAlert.close()
                }
            }, l = function (e, t) {
                var n = !0;
                r.hasClass(e, "show-input") && (n = e.querySelector("input").value, n || (n = "")), t.doneFunction(n), t.closeOnConfirm && sweetAlert.close(), t.showLoaderOnConfirm && sweetAlert.disableButtons()
            }, i = function (e, t) {
                var n = String(t.doneFunction).replace(/\s/g, ""), o = "function(" === n.substring(0, 9) && ")" !== n.substring(9, 10);
                o && t.doneFunction(!1), t.closeOnCancel && sweetAlert.close()
            };
            o["default"] = {handleButton: s, handleConfirm: l, handleCancel: i}, n.exports = o["default"]
        }, {"./handle-dom": 4, "./handle-swal-dom": 6, "./utils": 9}], 4: [function (n, o, a) {
            Object.defineProperty(a, "__esModule", {value: !0});
            var r = function (e, t) {
                return new RegExp(" " + t + " ").test(" " + e.className + " ")
            }, s = function (e, t) {
                r(e, t) || (e.className += " " + t)
            }, l = function (e, t) {
                var n = " " + e.className.replace(/[\t\r\n]/g, " ") + " ";
                if (r(e, t)) {
                    for (; n.indexOf(" " + t + " ") >= 0;)n = n.replace(" " + t + " ", " ");
                    e.className = n.replace(/^\s+|\s+$/g, "")
                }
            }, i = function (e) {
                var n = t.createElement("div");
                return n.appendChild(t.createTextNode(e)), n.innerHTML
            }, u = function (e) {
                e.style.opacity = "", e.style.display = "block"
            }, c = function (e) {
                if (e && !e.length)return u(e);
                for (var t = 0; t < e.length; ++t)u(e[t])
            }, d = function (e) {
                e.style.opacity = "", e.style.display = "none"
            }, f = function (e) {
                if (e && !e.length)return d(e);
                for (var t = 0; t < e.length; ++t)d(e[t])
            }, p = function (e, t) {
                for (var n = t.parentNode; null !== n;) {
                    if (n === e)return !0;
                    n = n.parentNode
                }
                return !1
            }, m = function (e) {
                e.style.left = "-9999px", e.style.display = "block";
                var t, n = e.clientHeight;
                return t = "undefined" != typeof getComputedStyle ? parseInt(getComputedStyle(e).getPropertyValue("padding-top"), 10) : parseInt(e.currentStyle.padding), e.style.left = "", e.style.display = "none", "-" + parseInt((n + t) / 2) + "px"
            }, v = function (e, t) {
                if (+e.style.opacity < 1) {
                    t = t || 16, e.style.opacity = 0, e.style.display = "block";
                    var n = +new Date, o = function (e) {
                        function t() {
                            return e.apply(this, arguments)
                        }

                        return t.toString = function () {
                            return e.toString()
                        }, t
                    }(function () {
                        e.style.opacity = +e.style.opacity + (new Date - n) / 100, n = +new Date, +e.style.opacity < 1 && setTimeout(o, t)
                    });
                    o()
                }
                e.style.display = "block"
            }, y = function (e, t) {
                t = t || 16, e.style.opacity = 1;
                var n = +new Date, o = function (e) {
                    function t() {
                        return e.apply(this, arguments)
                    }

                    return t.toString = function () {
                        return e.toString()
                    }, t
                }(function () {
                    e.style.opacity = +e.style.opacity - (new Date - n) / 100, n = +new Date, +e.style.opacity > 0 ? setTimeout(o, t) : e.style.display = "none"
                });
                o()
            }, h = function (n) {
                if ("function" == typeof MouseEvent) {
                    var o = new MouseEvent("click", {view: e, bubbles: !1, cancelable: !0});
                    n.dispatchEvent(o)
                } else if (t.createEvent) {
                    var a = t.createEvent("MouseEvents");
                    a.initEvent("click", !1, !1), n.dispatchEvent(a)
                } else t.createEventObject ? n.fireEvent("onclick") : "function" == typeof n.onclick && n.onclick()
            }, b = function (t) {
                "function" == typeof t.stopPropagation ? (t.stopPropagation(), t.preventDefault()) : e.event && e.event.hasOwnProperty("cancelBubble") && (e.event.cancelBubble = !0)
            };
            a.hasClass = r, a.addClass = s, a.removeClass = l, a.escapeHtml = i, a._show = u, a.show = c, a._hide = d, a.hide = f, a.isDescendant = p, a.getTopMargin = m, a.fadeIn = v, a.fadeOut = y, a.fireClick = h, a.stopEventPropagation = b
        }, {}], 5: [function (t, o, a) {
            Object.defineProperty(a, "__esModule", {value: !0});
            var r = t("./handle-dom"), s = t("./handle-swal-dom"), l = function (t, o, a) {
                var l = t || e.event, i = l.keyCode || l.which, u = a.querySelector("button.confirm"), c = a.querySelector("button.cancel"), d = a.querySelectorAll("button[tabindex]");
                if (-1 !== [9, 13, 32, 27].indexOf(i)) {
                    for (var f = l.target || l.srcElement, p = -1, m = 0; m < d.length; m++)if (f === d[m]) {
                        p = m;
                        break
                    }
                    9 === i ? (f = -1 === p ? u : p === d.length - 1 ? d[0] : d[p + 1], r.stopEventPropagation(l), f.focus(), o.confirmButtonColor && s.setFocusStyle(f, o.confirmButtonColor)) : 13 === i ? ("INPUT" === f.tagName && (f = u, u.focus()), f = -1 === p ? u : n) : 27 === i && o.allowEscapeKey === !0 ? (f = c, r.fireClick(f, l)) : f = n
                }
            };
            a["default"] = l, o.exports = a["default"]
        }, {"./handle-dom": 4, "./handle-swal-dom": 6}], 6: [function (n, o, a) {
            var r = function (e) {
                return e && e.__esModule ? e : {"default": e}
            };
            Object.defineProperty(a, "__esModule", {value: !0});
            var s = n("./utils"), l = n("./handle-dom"), i = n("./default-params"), u = r(i), c = n("./injected-html"), d = r(c), f = ".sweet-alert", p = ".sweet-overlay", m = function () {
                var e = t.createElement("div");
                for (e.innerHTML = d["default"]; e.firstChild;)t.body.appendChild(e.firstChild)
            }, v = function (e) {
                function t() {
                    return e.apply(this, arguments)
                }

                return t.toString = function () {
                    return e.toString()
                }, t
            }(function () {
                var e = t.querySelector(f);
                return e || (m(), e = v()), e
            }), y = function () {
                var e = v();
                return e ? e.querySelector("input") : void 0
            }, h = function () {
                return t.querySelector(p)
            }, b = function (e, t) {
                var n = s.hexToRgb(t);
                e.style.boxShadow = "0 0 2px rgba(" + n + ", 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.05)"
            }, g = function (n) {
                var o = v();
                l.fadeIn(h(), 10), l.show(o), l.addClass(o, "showSweetAlert"), l.removeClass(o, "hideSweetAlert"), e.previousActiveElement = t.activeElement;
                var a = o.querySelector("button.confirm");
                a.focus(), setTimeout(function () {
                    l.addClass(o, "visible")
                }, 500);
                var r = o.getAttribute("data-timer");
                if ("null" !== r && "" !== r) {
                    var s = n;
                    o.timeout = setTimeout(function () {
                        var e = (s || null) && "true" === o.getAttribute("data-has-done-function");
                        e ? s(null) : sweetAlert.close()
                    }, r)
                }
            }, w = function () {
                var e = v(), t = y();
                l.removeClass(e, "show-input"), t.value = u["default"].inputValue, t.setAttribute("type", u["default"].inputType), t.setAttribute("placeholder", u["default"].inputPlaceholder), C()
            }, C = function (e) {
                if (e && 13 === e.keyCode)return !1;
                var t = v(), n = t.querySelector(".sa-input-error");
                l.removeClass(n, "show");
                var o = t.querySelector(".sa-error-container");
                l.removeClass(o, "show")
            }, S = function () {
                var e = v();
                e.style.marginTop = l.getTopMargin(v())
            };
            a.sweetAlertInitialize = m, a.getModal = v, a.getOverlay = h, a.getInput = y, a.setFocusStyle = b, a.openModal = g, a.resetInput = w, a.resetInputError = C, a.fixVerticalPosition = S
        }, {"./default-params": 2, "./handle-dom": 4, "./injected-html": 7, "./utils": 9}], 7: [function (e, t, n) {
            Object.defineProperty(n, "__esModule", {value: !0});
            var o = '<div class="sweet-overlay" tabIndex="-1"></div><div class="sweet-alert"><div class="sa-icon sa-error">\n      <span class="sa-x-mark">\n        <span class="sa-line sa-left"></span>\n        <span class="sa-line sa-right"></span>\n      </span>\n    </div><div class="sa-icon sa-warning">\n      <span class="sa-body"></span>\n      <span class="sa-dot"></span>\n    </div><div class="sa-icon sa-info"></div><div class="sa-icon sa-success">\n      <span class="sa-line sa-tip"></span>\n      <span class="sa-line sa-long"></span>\n\n      <div class="sa-placeholder"></div>\n      <div class="sa-fix"></div>\n    </div><div class="sa-icon sa-custom"></div><h2>Title</h2>\n    <p>Text</p>\n    <fieldset>\n      <input type="text" tabIndex="3" />\n      <div class="sa-input-error"></div>\n    </fieldset><div class="sa-error-container">\n      <div class="icon">!</div>\n      <p>Not valid!</p>\n    </div><div class="sa-button-container">\n      <button class="cancel" tabIndex="2">Cancel</button>\n      <div class="sa-confirm-button-container">\n        <button class="confirm" tabIndex="1">OK</button><div class="la-ball-fall">\n          <div></div>\n          <div></div>\n          <div></div>\n        </div>\n      </div>\n    </div></div>';
            n["default"] = o, t.exports = n["default"]
        }, {}], 8: [function (e, t, o) {
            Object.defineProperty(o, "__esModule", {value: !0});
            var a = e("./utils"), r = e("./handle-swal-dom"), s = e("./handle-dom"), l = ["error", "warning", "info", "success", "input", "prompt"], i = function (e) {
                var t = r.getModal(), o = t.querySelector("h2"), i = t.querySelector("p"), u = t.querySelector("button.cancel"), c = t.querySelector("button.confirm");
                if (o.innerHTML = e.html ? e.title : s.escapeHtml(e.title).split("\n").join("<br>"), i.innerHTML = e.html ? e.text : s.escapeHtml(e.text || "").split("\n").join("<br>"), e.text && s.show(i), e.customClass) s.addClass(t, e.customClass), t.setAttribute("data-custom-class", e.customClass); else {
                    var d = t.getAttribute("data-custom-class");
                    s.removeClass(t, d), t.setAttribute("data-custom-class", "")
                }
                if (s.hide(t.querySelectorAll(".sa-icon")), e.type && !a.isIE8()) {
                    var f = function () {
                        for (var o = !1, a = 0; a < l.length; a++)if (e.type === l[a]) {
                            o = !0;
                            break
                        }
                        if (!o)return logStr("Unknown alert type: " + e.type), {v: !1};
                        var i = ["success", "error", "warning", "info"], u = n;
                        -1 !== i.indexOf(e.type) && (u = t.querySelector(".sa-icon.sa-" + e.type), s.show(u));
                        var c = r.getInput();
                        switch (e.type) {
                            case"success":
                                s.addClass(u, "animate"), s.addClass(u.querySelector(".sa-tip"), "animateSuccessTip"), s.addClass(u.querySelector(".sa-long"), "animateSuccessLong");
                                break;
                            case"error":
                                s.addClass(u, "animateErrorIcon"), s.addClass(u.querySelector(".sa-x-mark"), "animateXMark");
                                break;
                            case"warning":
                                s.addClass(u, "pulseWarning"), s.addClass(u.querySelector(".sa-body"), "pulseWarningIns"), s.addClass(u.querySelector(".sa-dot"), "pulseWarningIns");
                                break;
                            case"input":
                            case"prompt":
                                c.setAttribute("type", e.inputType), c.value = e.inputValue, c.setAttribute("placeholder", e.inputPlaceholder), s.addClass(t, "show-input"), setTimeout(function () {
                                    c.focus(), c.addEventListener("keyup", swal.resetInputError)
                                }, 400)
                        }
                    }();
                    if ("object" == typeof f)return f.v
                }
                if (e.imageUrl) {
                    var p = t.querySelector(".sa-icon.sa-custom");
                    p.style.backgroundImage = "url(" + e.imageUrl + ")", s.show(p);
                    var m = 80, v = 80;
                    if (e.imageSize) {
                        var y = e.imageSize.toString().split("x"), h = y[0], b = y[1];
                        h && b ? (m = h, v = b): logStr("Parameter imageSize expects value with format WIDTHxHEIGHT, got " + e.imageSize)
                    }
                    p.setAttribute("style", p.getAttribute("style") + "width:" + m + "px; height:" + v + "px")
                }
                t.setAttribute("data-has-cancel-button", e.showCancelButton), e.showCancelButton ? u.style.display = "inline-block" : s.hide(u), t.setAttribute("data-has-confirm-button", e.showConfirmButton), e.showConfirmButton ? c.style.display = "inline-block" : s.hide(c), e.cancelButtonText && (u.innerHTML = s.escapeHtml(e.cancelButtonText)), e.confirmButtonText && (c.innerHTML = s.escapeHtml(e.confirmButtonText)), e.confirmButtonColor && (c.style.backgroundColor = e.confirmButtonColor, c.style.borderLeftColor = e.confirmLoadingButtonColor, c.style.borderRightColor = e.confirmLoadingButtonColor, r.setFocusStyle(c, e.confirmButtonColor)), t.setAttribute("data-allow-outside-click", e.allowOutsideClick);
                var g = e.doneFunction ? !0 : !1;
                t.setAttribute("data-has-done-function", g), e.animation ? "string" == typeof e.animation ? t.setAttribute("data-animation", e.animation) : t.setAttribute("data-animation", "pop") : t.setAttribute("data-animation", "none"), t.setAttribute("data-timer", e.timer)
            };
            o["default"] = i, t.exports = o["default"]
        }, {"./handle-dom": 4, "./handle-swal-dom": 6, "./utils": 9}], 9: [function (t, n, o) {
            Object.defineProperty(o, "__esModule", {value: !0});
            var a = function (e, t) {
                for (var n in t)t.hasOwnProperty(n) && (e[n] = t[n]);
                return e
            }, r = function (e) {
                var t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);
                return t ? parseInt(t[1], 16) + ", " + parseInt(t[2], 16) + ", " + parseInt(t[3], 16) : null
            }, s = function () {
                return e.attachEvent && !e.addEventListener
            }, l = function (t) {
                e.console && e.console.log("SweetAlert: " + t)
            }, i = function (e, t) {
                e = String(e).replace(/[^0-9a-f]/gi, ""), e.length < 6 && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), t = t || 0;
                var n, o, a = "#";
                for (o = 0; 3 > o; o++)n = parseInt(e.substr(2 * o, 2), 16), n = Math.round(Math.min(Math.max(0, n + n * t), 255)).toString(16), a += ("00" + n).substr(n.length);
                return a
            };
            o.extend = a, o.hexToRgb = r, o.isIE8 = s, o.logStr = l, o.colorLuminance = i
        }, {}]
    }, {}, [1]), "function" == typeof define && define.amd ? define(function () {
            return sweetAlert
        }) : "undefined" != typeof module && module.exports && (module.exports = sweetAlert)
}(window, document);
!function (t, e) {
    "function" == typeof define && define.amd ? define(["jquery"], function (o) {
            return t.returnExportsGlobal = e(o)
        }) : "object" == typeof exports ? module.exports = e(require("jquery")) : e(jQuery)
}(this, function (t) {
    "use strict";
    var e, o, n, r, i, s, a, p, c, l, f;
    l = "caret", e = function () {
        function e(t) {
            this.$inputor = t, this.domInputor = this.$inputor[0]
        }

        return e.prototype.setPos = function (t) {
            return this.domInputor
        }, e.prototype.getIEPosition = function () {
            return this.getPosition()
        }, e.prototype.getPosition = function () {
            var t, e;
            return e = this.getOffset(), t = this.$inputor.offset(), e.left -= t.left, e.top -= t.top, e
        }, e.prototype.getOldIEPos = function () {
            var t, e;
            return e = a.selection.createRange(), t = a.body.createTextRange(), t.moveToElementText(this.domInputor), t.setEndPoint("EndToEnd", e), t.text.length
        }, e.prototype.getPos = function () {
            var t, e, o;
            return (o = this.range()) ? (t = o.cloneRange(), t.selectNodeContents(this.domInputor), t.setEnd(o.endContainer, o.endOffset), e = t.toString().length, t.detach(), e) : a.selection ? this.getOldIEPos() : void 0
        }, e.prototype.getOldIEOffset = function () {
            var t, e;
            return t = a.selection.createRange().duplicate(), t.moveStart("character", -1), e = t.getBoundingClientRect(), {
                height: e.bottom - e.top,
                left: e.left,
                top: e.top
            }
        }, e.prototype.getOffset = function (e) {
            var o, n, r, i, s;
            return c.getSelection && (r = this.range()) ? (r.endOffset - 1 > 0 && r.endContainer === !this.domInputor && (o = r.cloneRange(), o.setStart(r.endContainer, r.endOffset - 1), o.setEnd(r.endContainer, r.endOffset), i = o.getBoundingClientRect(), n = {
                    height: i.height,
                    left: i.left + i.width,
                    top: i.top
                }, o.detach()), n && 0 !== (null != n ? n.height : void 0) || (o = r.cloneRange(), s = t(a.createTextNode("|")), o.insertNode(s[0]), o.selectNode(s[0]), i = o.getBoundingClientRect(), n = {
                    height: i.height,
                    left: i.left,
                    top: i.top
                }, s.remove(), o.detach())) : a.selection && (n = this.getOldIEOffset()), n && (n.top += t(c).scrollTop(), n.left += t(c).scrollLeft()), n
        }, e.prototype.range = function () {
            var t;
            if (c.getSelection)return t = c.getSelection(), t.rangeCount > 0 ? t.getRangeAt(0) : null
        }, e
    }(), o = function () {
        function e(t) {
            this.$inputor = t, this.domInputor = this.$inputor[0]
        }

        return e.prototype.getIEPos = function () {
            var t, e, o, n, r, i, s;
            return e = this.domInputor, i = a.selection.createRange(), r = 0, i && i.parentElement() === e && (n = e.value.replace(/\r\n/g, "\n"), o = n.length, s = e.createTextRange(), s.moveToBookmark(i.getBookmark()), t = e.createTextRange(), t.collapse(!1), r = s.compareEndPoints("StartToEnd", t) > -1 ? o : -s.moveStart("character", -o)), r
        }, e.prototype.getPos = function () {
            return a.selection ? this.getIEPos() : this.domInputor.selectionStart
        }, e.prototype.setPos = function (t) {
            var e, o;
            return e = this.domInputor, a.selection ? (o = e.createTextRange(), o.move("character", t), o.select()) : e.setSelectionRange && e.setSelectionRange(t, t), e
        }, e.prototype.getIEOffset = function (t) {
            var e, o, n, r;
            return o = this.domInputor.createTextRange(), t || (t = this.getPos()), o.move("character", t), n = o.boundingLeft, r = o.boundingTop, e = o.boundingHeight, {
                left: n,
                top: r,
                height: e
            }
        }, e.prototype.getOffset = function (e) {
            var o, n, r;
            return o = this.$inputor, a.selection ? (n = this.getIEOffset(e), n.top += t(c).scrollTop() + o.scrollTop(), n.left += t(c).scrollLeft() + o.scrollLeft(), n) : (n = o.offset(), r = this.getPosition(e), n = {
                    left: n.left + r.left - o.scrollLeft(),
                    top: n.top + r.top - o.scrollTop(),
                    height: r.height
                })
        }, e.prototype.getPosition = function (t) {
            var e, o, r, i, s, a, p;
            return e = this.$inputor, i = function (t) {
                return t = t.replace(/<|>|`|"|&/g, "?").replace(/\r\n|\r|\n/g, "<br/>"), /firefox/i.test(navigator.userAgent) && (t = t.replace(/\s/g, "&nbsp;")), t
            }, void 0 === t && (t = this.getPos()), p = e.val().slice(0, t), r = e.val().slice(t), s = "<span style='position: relative; display: inline;'>" + i(p) + "</span>", s += "<span id='caret' style='position: relative; display: inline;'>|</span>", s += "<span style='position: relative; display: inline;'>" + i(r) + "</span>", a = new n(e), o = a.create(s).rect()
        }, e.prototype.getIEPosition = function (t) {
            var e, o, n, r, i;
            return n = this.getIEOffset(t), o = this.$inputor.offset(), r = n.left - o.left, i = n.top - o.top, e = n.height, {
                left: r,
                top: i,
                height: e
            }
        }, e
    }(), n = function () {
        function e(t) {
            this.$inputor = t
        }

        return e.prototype.css_attr = ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle", "borderTopWidth", "boxSizing", "fontFamily", "fontSize", "fontWeight", "height", "letterSpacing", "lineHeight", "marginBottom", "marginLeft", "marginRight", "marginTop", "outlineWidth", "overflow", "overflowX", "overflowY", "paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "textAlign", "textOverflow", "textTransform", "whiteSpace", "wordBreak", "wordWrap"], e.prototype.mirrorCss = function () {
            var e, o = this;
            return e = {
                position: "absolute",
                left: -9999,
                top: 0,
                zIndex: -2e4
            }, "TEXTAREA" === this.$inputor.prop("tagName") && this.css_attr.push("width"), t.each(this.css_attr, function (t, n) {
                return e[n] = o.$inputor.css(n)
            }), e
        }, e.prototype.create = function (e) {
            return this.$mirror = t("<div></div>"), this.$mirror.css(this.mirrorCss()), this.$mirror.html(e), this.$inputor.after(this.$mirror), this
        }, e.prototype.rect = function () {
            var t, e, o;
            return t = this.$mirror.find("#caret"), e = t.position(), o = {
                left: e.left,
                top: e.top,
                height: t.height()
            }, this.$mirror.remove(), o
        }, e
    }(), r = {
        contentEditable: function (t) {
            return !(!t[0].contentEditable || "true" !== t[0].contentEditable)
        }
    }, s = {
        pos: function (t) {
            return t || 0 === t ? this.setPos(t) : this.getPos()
        }, position: function (t) {
            return a.selection ? this.getIEPosition(t) : this.getPosition(t)
        }, offset: function (t) {
            var e;
            return e = this.getOffset(t)
        }
    }, a = null, c = null, p = null, f = function (t) {
        var e;
        return (e = null != t ? t.iframe : void 0) ? (p = e, c = e.contentWindow, a = e.contentDocument || c.document) : (p = void 0, c = window, a = document)
    }, i = function (t) {
        var e;
        a = t[0].ownerDocument, c = a.defaultView || a.parentWindow;
        try {
            return p = c.frameElement
        } catch (o) {
            e = o
        }
    }, t.fn.caret = function (n, i, a) {
        var p;
        return s[n] ? (t.isPlainObject(i) ? (f(i), i = void 0) : f(a), p = r.contentEditable(this) ? new e(this) : new o(this), s[n].apply(p, [i])) : t.error("Method " + n + " does not exist on jQuery.caret")
    }, t.fn.caret.EditableCaret = e, t.fn.caret.InputCaret = o, t.fn.caret.Utils = r, t.fn.caret.apis = s
});
!function (t, e) {
    "function" == typeof define && define.amd ? define(["jquery"], function (n) {
            return t.returnExportsGlobal = e(n)
        }) : "object" == typeof exports ? module.exports = e(require("jquery")) : e(jQuery)
}(this, function (t) {
    var e, n, i, r, o, s, a, h, l, u = [].slice, c = {}.hasOwnProperty, p = function (t, e) {
        function n() {
            this.constructor = t
        }

        for (var i in e)c.call(e, i) && (t[i] = e[i]);
        return n.prototype = e.prototype, t.prototype = new n, t.__super__ = e.prototype, t
    };
    n = function () {
        function e(e) {
            this.currentFlag = null, this.controllers = {}, this.aliasMaps = {}, this.$inputor = t(e), this.setupRootElement(), this.listen()
        }

        return e.prototype.createContainer = function (e) {
            var n;
            return null != (n = this.$el) && n.remove(), t(e.body).append(this.$el = t("<div class='atwho-container'></div>"))
        }, e.prototype.setupRootElement = function (t, e) {
            var n;
            if (null == e && (e = !1), t) this.window = t.contentWindow, this.document = t.contentDocument || this.window.document, this.iframe = t; else {
                this.document = this.$inputor[0].ownerDocument, this.window = this.document.defaultView || this.document.parentWindow;
                try {
                    this.iframe = this.window.frameElement
                } catch (i) {
                    throw n = i, this.iframe = null, new Error("iframe auto-discovery is failed.\nPlease use `serIframe` to set the target iframe manually.")
                }
            }
            return this.createContainer((this.iframeAsRoot = e) ? this.document : document)
        }, e.prototype.controller = function (t) {
            var e, n, i, r;
            if (this.aliasMaps[t]) n = this.controllers[this.aliasMaps[t]]; else {
                r = this.controllers;
                for (i in r)if (e = r[i], i === t) {
                    n = e;
                    break
                }
            }
            return n ? n : this.controllers[this.currentFlag]
        }, e.prototype.setContextFor = function (t) {
            return this.currentFlag = t, this
        }, e.prototype.reg = function (t, e) {
            var n, i;
            return n = (i = this.controllers)[t] || (i[t] = this.$inputor.is("[contentEditable]") ? new o(this, t) : new h(this, t)), e.alias && (this.aliasMaps[e.alias] = t), n.init(e), this
        }, e.prototype.listen = function () {
            return this.$inputor.on("keyup.atwhoInner", function (t) {
                return function (e) {
                    return t.onKeyup(e)
                }
            }(this)).on("keydown.atwhoInner", function (t) {
                return function (e) {
                    return t.onKeydown(e)
                }
            }(this)).on("scroll.atwhoInner", function (t) {
                return function (e) {
                    var n;
                    return null != (n = t.controller()) ? n.view.hide(e) : void 0
                }
            }(this)).on("blur.atwhoInner", function (t) {
                return function (e) {
                    var n;
                    return (n = t.controller()) ? n.view.hide(e, n.getOpt("displayTimeout")) : void 0
                }
            }(this)).on("click.atwhoInner", function (t) {
                return function (e) {
                    return t.dispatch(e)
                }
            }(this))
        }, e.prototype.shutdown = function () {
            var t, e, n;
            n = this.controllers;
            for (e in n)t = n[e], t.destroy(), delete this.controllers[e];
            return this.$inputor.off(".atwhoInner"), this.$el.remove()
        }, e.prototype.dispatch = function (e) {
            return t.map(this.controllers, function (t) {
                return function (n) {
                    var i;
                    return (i = n.getOpt("delay")) ? (clearTimeout(t.delayedCallback), t.delayedCallback = setTimeout(function () {
                            return n.lookUp(e) ? t.setContextFor(n.at) : void 0
                        }, i)) : n.lookUp(e) ? t.setContextFor(n.at) : void 0
                }
            }(this))
        }, e.prototype.onKeyup = function (e) {
            var n;
            switch (e.keyCode) {
                case s.ESC:
                    e.preventDefault(), null != (n = this.controller()) && n.view.hide();
                    break;
                case s.DOWN:
                case s.UP:
                case s.CTRL:
                    t.noop();
                    break;
                case s.P:
                case s.N:
                    e.ctrlKey || this.dispatch(e);
                    break;
                default:
                    this.dispatch(e)
            }
        }, e.prototype.onKeydown = function (e) {
            var n, i;
            if (n = null != (i = this.controller()) ? i.view : void 0, n && n.visible())switch (e.keyCode) {
                case s.ESC:
                    e.preventDefault(), n.hide(e);
                    break;
                case s.UP:
                    e.preventDefault(), n.prev();
                    break;
                case s.DOWN:
                    e.preventDefault(), n.next();
                    break;
                case s.P:
                    if (!e.ctrlKey)return;
                    e.preventDefault(), n.prev();
                    break;
                case s.N:
                    if (!e.ctrlKey)return;
                    e.preventDefault(), n.next();
                    break;
                case s.TAB:
                case s.ENTER:
                    if (!n.visible())return;
                    e.preventDefault(), n.choose(e);
                    break;
                default:
                    t.noop()
            }
        }, e
    }(), i = function () {
        function e(e, n) {
            this.app = e, this.at = n, this.$inputor = this.app.$inputor, this.id = this.$inputor[0].id || this.uid(), this.setting = null, this.query = null, this.pos = 0, this.range = null, 0 === (this.$el = t("#atwho-ground-" + this.id, this.app.$el)).length && this.app.$el.append(this.$el = t("<div id='atwho-ground-" + this.id + "'></div>")), this.model = new a(this), this.view = new l(this)
        }

        return e.prototype.uid = function () {
            return (Math.random().toString(16) + "000000000").substr(2, 8) + (new Date).getTime()
        }, e.prototype.init = function (e) {
            return this.setting = t.extend({}, this.setting || t.fn.atwho["default"], e), this.view.init(), this.model.reload(this.setting.data)
        }, e.prototype.destroy = function () {
            return this.trigger("beforeDestroy"), this.model.destroy(), this.view.destroy(), this.$el.remove()
        }, e.prototype.callDefault = function () {
            var e, n, i;
            i = arguments[0], e = 2 <= arguments.length ? u.call(arguments, 1) : [];
            try {
                return r[i].apply(this, e)
            } catch (o) {
                return n = o, t.error("" + n + " Or maybe At.js doesn't have function " + i)
            }
        }, e.prototype.trigger = function (t, e) {
            var n, i;
            return null == e && (e = []), e.push(this), n = this.getOpt("alias"), i = n ? "" + t + "-" + n + ".atwho" : "" + t + ".atwho", this.$inputor.trigger(i, e)
        }, e.prototype.callbacks = function (t) {
            return this.getOpt("callbacks")[t] || r[t]
        }, e.prototype.getOpt = function (t, e) {
            var n;
            try {
                return this.setting[t]
            } catch (i) {
                return n = i, null
            }
        }, e.prototype.insertContentFor = function (e) {
            var n, i;
            return i = this.getOpt("insertTpl"), n = t.extend({}, e.data("item-data"), {"atwho-at": this.at}), this.callbacks("tplEval").call(this, i, n)
        }, e.prototype.renderView = function (t) {
            var e;
            return e = this.getOpt("searchKey"), t = this.callbacks("sorter").call(this, this.query.text, t.slice(0, 1001), e), this.view.render(t.slice(0, this.getOpt("limit")))
        }, e.arrayToDefaultHash = function (e) {
            var n, i, r, o;
            if (!t.isArray(e))return e;
            for (o = [], i = 0, r = e.length; r > i; i++)n = e[i], t.isPlainObject(n) ? o.push(n) : o.push({name: n});
            return o
        }, e.prototype.lookUp = function (e) {
            var n, i;
            if (n = this.catchQuery(e))return i = function (t) {
                return t && t.length > 0 ? this.renderView(this.constructor.arrayToDefaultHash(t)) : this.view.hide()
            }, this.model.query(n.text, t.proxy(i, this)), n
        }, e
    }(), h = function (e) {
        function n() {
            return n.__super__.constructor.apply(this, arguments)
        }

        return p(n, e), n.prototype.catchQuery = function () {
            var t, e, n, i, r, o;
            return e = this.$inputor.val(), t = this.$inputor.caret("pos", {iframe: this.app.iframe}), o = e.slice(0, t), i = this.callbacks("matcher").call(this, this.at, o, this.getOpt("startWithSpace")), "string" == typeof i && i.length <= this.getOpt("maxLen", 20) ? (r = t - i.length, n = r + i.length, this.pos = r, i = {
                    text: i,
                    headPos: r,
                    endPos: n
                }, this.trigger("matched", [this.at, i.text])) : (i = null, this.view.hide()), this.query = i
        }, n.prototype.rect = function () {
            var e, n, i;
            if (e = this.$inputor.caret("offset", this.pos - 1, {iframe: this.app.iframe}))return this.app.iframe && !this.app.iframeAsRoot && (n = t(this.app.iframe).offset(), e.left += n.left, e.top += n.top), i = this.app.document.selection ? 0 : 2, {
                left: e.left,
                top: e.top,
                bottom: e.top + e.height + i
            }
        }, n.prototype.insert = function (t, e) {
            var n, i, r, o, s;
            return n = this.$inputor, i = n.val(), r = i.slice(0, Math.max(this.query.headPos - this.at.length, 0)), o = "" === (o = this.getOpt("suffix")) ? o : o || " ", t += o, s = "" + r + t + i.slice(this.query.endPos || 0), n.val(s), n.caret("pos", r.length + t.length, {iframe: this.app.iframe}), n.is(":focus") || n.focus(), n.change()
        }, n
    }(i), o = function (e) {
        function n() {
            return n.__super__.constructor.apply(this, arguments)
        }

        return p(n, e), n.prototype._getRange = function () {
            var t;
            return t = this.app.window.getSelection(), t.rangeCount > 0 ? t.getRangeAt(0) : void 0
        }, n.prototype._setRange = function (e, n, i) {
            return null == i && (i = this._getRange()), i ? (n = t(n)[0], "after" === e ? (i.setEndAfter(n), i.setStartAfter(n)) : (i.setEndBefore(n), i.setStartBefore(n)), i.collapse(!1), this._clearRange(i)) : void 0
        }, n.prototype._clearRange = function (t) {
            var e;
            return null == t && (t = this._getRange()), e = this.app.window.getSelection(), e.removeAllRanges(), e.addRange(t)
        }, n.prototype._movingEvent = function (t) {
            var e;
            return "click" === t.type || (e = t.which) === s.RIGHT || e === s.LEFT || e === s.UP || e === s.DOWN
        }, n.prototype._unwrap = function (e) {
            var n;
            return e = t(e).unwrap().get(0), (n = e.nextSibling) && n.nodeValue && (e.nodeValue += n.nodeValue, t(n).remove()), e
        }, n.prototype.catchQuery = function (e) {
            var n, i, r, o, a, h, l, u, c, p;
            if (c = this._getRange()) {
                if (e.which === s.ENTER)return (i = t(c.startContainer).closest(".atwho-query")).contents().unwrap(), i.is(":empty") && i.remove(), (i = t(".atwho-query", this.app.document)).text(i.text()).contents().last().unwrap(), void this._clearRange();
                if (/firefox/i.test(navigator.userAgent)) {
                    if (t(c.startContainer).is(this.$inputor))return void this._clearRange();
                    e.which === s.BACKSPACE && c.startContainer.nodeType === document.ELEMENT_NODE && (l = c.startOffset - 1) >= 0 ? (p = c.cloneRange(), p.setStart(c.startContainer, l), t(p.cloneContents()).contents().last().is(".atwho-inserted") && (o = t(c.startContainer).contents().get(l), this._setRange("after", t(o).contents().last()))) : e.which === s.LEFT && c.startContainer.nodeType === document.TEXT_NODE && (n = t(c.startContainer.previousSibling), n.is(".atwho-inserted") && 0 === c.startOffset && this._setRange("after", n.contents().last()))
                }
                return t(c.startContainer).closest(".atwho-inserted").addClass("atwho-query").siblings().removeClass("atwho-query"), (i = t(".atwho-query", this.app.document)).length > 0 && i.is(":empty") && 0 === i.text().length && i.remove(), this._movingEvent(e) || i.removeClass("atwho-inserted"), p = c.cloneRange(), p.setStart(c.startContainer, 0), h = this.callbacks("matcher").call(this, this.at, p.toString(), this.getOpt("startWithSpace")), 0 === i.length && "string" == typeof h && (r = c.startOffset - this.at.length - h.length) >= 0 && (c.setStart(c.startContainer, r), c.surroundContents((i = t("<span class='atwho-query'/>", this.app.document))[0]), a = i.contents().last().get(0), /firefox/i.test(navigator.userAgent) ? (c.setStart(a, a.length), c.setEnd(a, a.length), this._clearRange(c)) : this._setRange("after", a, c)), "string" == typeof h && h.length <= this.getOpt("maxLen", 20) ? (u = {
                        text: h,
                        el: i
                    }, this.trigger("matched", [this.at, u.text])) : (this.view.hide(), u = null, i.text().indexOf(this.at) >= 0 && (this._movingEvent(e) && i.hasClass("atwho-inserted") ? i.removeClass("atwho-query") : !1 !== this.callbacks("afterMatchFailed").call(this, this.at, i) && this._setRange("after", this._unwrap(i.text(i.text()).contents().first())))), this.query = u
            }
        }, n.prototype.rect = function () {
            var e, n, i;
            return i = this.query.el.offset(), this.app.iframe && !this.app.iframeAsRoot && (n = (e = t(this.app.iframe)).offset(), i.left += n.left - this.$inputor.scrollLeft(), i.top += n.top - this.$inputor.scrollTop()), i.bottom = i.top + this.query.el.height(), i
        }, n.prototype.insert = function (t, e) {
            var n, i, r;
            return i = (i = this.getOpt("suffix")) ? i : i || " ", this.query.el.removeClass("atwho-query").addClass("atwho-inserted").html(t), (n = this._getRange()) && (n.setEndAfter(this.query.el[0]), n.collapse(!1), n.insertNode(r = this.app.document.createTextNode(i)), this._setRange("after", r, n)), this.$inputor.is(":focus") || this.$inputor.focus(), this.$inputor.change()
        }, n
    }(i), a = function () {
        function e(t) {
            this.context = t, this.at = this.context.at, this.storage = this.context.$inputor
        }

        return e.prototype.destroy = function () {
            return this.storage.data(this.at, null)
        }, e.prototype.saved = function () {
            return this.fetch() > 0
        }, e.prototype.query = function (t, e) {
            var n, i, r;
            return n = this.fetch(), i = this.context.getOpt("searchKey"), n = this.context.callbacks("filter").call(this.context, t, n, i) || [], r = this.context.callbacks("remoteFilter"), n.length > 0 || !r && 0 === n.length ? e(n) : r.call(this.context, t, e)
        }, e.prototype.fetch = function () {
            return this.storage.data(this.at) || []
        }, e.prototype.save = function (t) {
            return this.storage.data(this.at, this.context.callbacks("beforeSave").call(this.context, t || []))
        }, e.prototype.load = function (t) {
            return !this.saved() && t ? this._load(t) : void 0
        }, e.prototype.reload = function (t) {
            return this._load(t)
        }, e.prototype._load = function (e) {
            return "string" == typeof e ? t.ajax(e, {dataType: "json"}).done(function (t) {
                    return function (e) {
                        return t.save(e)
                    }
                }(this)) : this.save(e)
        }, e
    }(), l = function () {
        function e(e) {
            this.context = e, this.$el = t("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"), this.timeoutID = null, this.context.$el.append(this.$el), this.bindEvent()
        }

        return e.prototype.init = function () {
            var t;
            return t = this.context.getOpt("alias") || this.context.at.charCodeAt(0), this.$el.attr({id: "at-view-" + t})
        }, e.prototype.destroy = function () {
            return this.$el.remove()
        }, e.prototype.bindEvent = function () {
            var e;
            return e = this.$el.find("ul"), e.on("mouseenter.atwho-view", "li", function (n) {
                return e.find(".cur").removeClass("cur"), t(n.currentTarget).addClass("cur")
            }).on("click.atwho-view", "li", function (n) {
                return function (i) {
                    return e.find(".cur").removeClass("cur"), t(i.currentTarget).addClass("cur"), n.choose(i), i.preventDefault()
                }
            }(this))
        }, e.prototype.visible = function () {
            return this.$el.is(":visible")
        }, e.prototype.choose = function (t) {
            var e, n;
            return (e = this.$el.find(".cur")).length && (n = this.context.insertContentFor(e), this.context.insert(this.context.callbacks("beforeInsert").call(this.context, n, e), e), this.context.trigger("inserted", [e, t]), this.hide(t)), this.context.getOpt("hideWithoutSuffix") ? this.stopShowing = !0 : void 0
        }, e.prototype.reposition = function (e) {
            var n, i, r, o;
            return o = this.context.app.iframeAsRoot ? this.context.app.window : window, e.bottom + this.$el.height() - t(o).scrollTop() > t(o).height() && (e.bottom = e.top - this.$el.height()), e.left > (i = t(o).width() - this.$el.width() - 5) && (e.left = i), n = {
                left: e.left,
                top: e.bottom
            }, null != (r = this.context.callbacks("beforeReposition")) && r.call(this.context, n), this.$el.offset(n), this.context.trigger("reposition", [n])
        }, e.prototype.next = function () {
            var t, e;
            return t = this.$el.find(".cur").removeClass("cur"), e = t.next(), e.length || (e = this.$el.find("li:first")), e.addClass("cur"), this.$el.animate({scrollTop: Math.max(0, t.innerHeight() * (e.index() + 2) - this.$el.height())}, 150)
        }, e.prototype.prev = function () {
            var t, e;
            return t = this.$el.find(".cur").removeClass("cur"), e = t.prev(), e.length || (e = this.$el.find("li:last")), e.addClass("cur"), this.$el.animate({scrollTop: Math.max(0, t.innerHeight() * (e.index() + 2) - this.$el.height())}, 150)
        }, e.prototype.show = function () {
            var t;
            return this.stopShowing ? void(this.stopShowing = !1) : (this.visible() || (this.$el.show(), this.$el.scrollTop(0), this.context.trigger("shown")), (t = this.context.rect()) ? this.reposition(t) : void 0)
        }, e.prototype.hide = function (t, e) {
            var n;
            if (this.visible())return isNaN(e) ? (this.$el.hide(), this.context.trigger("hidden", [t])) : (n = function (t) {
                    return function () {
                        return t.hide()
                    }
                }(this), clearTimeout(this.timeoutID), this.timeoutID = setTimeout(n, e))
        }, e.prototype.render = function (e) {
            var n, i, r, o, s, a, h;
            if (!(t.isArray(e) && e.length > 0))return void this.hide();
            for (this.$el.find("ul").empty(), i = this.$el.find("ul"), s = this.context.getOpt("displayTpl"), a = 0, h = e.length; h > a; a++)r = e[a], r = t.extend({}, r, {"atwho-at": this.context.at}), o = this.context.callbacks("tplEval").call(this.context, s, r), n = t(this.context.callbacks("highlighter").call(this.context, o, this.context.query.text)), n.data("item-data", r), i.append(n);
            return this.show(), this.context.getOpt("highlightFirst") ? i.find("li:first").addClass("cur") : void 0
        }, e
    }(), s = {
        DOWN: 40,
        UP: 38,
        ESC: 27,
        TAB: 9,
        ENTER: 13,
        CTRL: 17,
        P: 80,
        N: 78,
        LEFT: 37,
        UP: 38,
        RIGHT: 39,
        DOWN: 40,
        BACKSPACE: 8
    }, r = {
        beforeSave: function (t) {
            return i.arrayToDefaultHash(t)
        }, matcher: function (t, e, n) {
            var i, r, o, s;
            return t = t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), n && (t = "(?:^|\\s)" + t), o = decodeURI("%C3%80"), s = decodeURI("%C3%BF"), r = new RegExp("" + t + "([A-Za-z" + o + "-" + s + "0-9_+-]*)$|" + t + "([^\\x00-\\xff]*)$", "gi"), i = r.exec(e), i ? i[2] || i[1] : null
        }, filter: function (t, e, n) {
            var i, r, o, s;
            for (s = [], r = 0, o = e.length; o > r; r++)i = e[r], ~new String(i[n]).toLowerCase().indexOf(t.toLowerCase()) && s.push(i);
            return s
        }, remoteFilter: null, sorter: function (t, e, n) {
            var i, r, o, s;
            if (!t)return e;
            for (s = [], r = 0, o = e.length; o > r; r++)i = e[r], i.atwho_order = new String(i[n]).toLowerCase().indexOf(t.toLowerCase()), i.atwho_order > -1 && s.push(i);
            return s.sort(function (t, e) {
                return t.atwho_order - e.atwho_order
            })
        }, tplEval: function (t, e) {
            var n;
            try {
                return t.replace(/\$\{([^\}]*)\}/g, function (t, n, i) {
                    return e[n]
                })
            } catch (i) {
                return n = i, ""
            }
        }, highlighter: function (t, e) {
            var n;
            return e ? (n = new RegExp(">\\s*(\\w*?)(" + e.replace("+", "\\+") + ")(\\w*)\\s*<", "ig"), t.replace(n, function (t, e, n, i) {
                    return "> " + e + "<strong>" + n + "</strong>" + i + " <"
                })) : t
        }, beforeInsert: function (t, e) {
            return t
        }, beforeReposition: function (t) {
            return t
        }, afterMatchFailed: function (t, e) {
        }
    }, e = {
        load: function (t, e) {
            var n;
            return (n = this.controller(t)) ? n.model.load(e) : void 0
        }, isSelecting: function () {
            var t;
            return null != (t = this.controller()) ? t.view.visible() : void 0
        }, setIframe: function (t, e) {
            return this.setupRootElement(t, e), null
        }, run: function () {
            return this.dispatch()
        }, destroy: function () {
            return this.shutdown(), this.$inputor.data("atwho", null)
        }
    }, t.fn.atwho = function (i) {
        var r, o;
        return o = arguments, r = null, this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function () {
            var s, a;
            return (a = (s = t(this)).data("atwho")) || s.data("atwho", a = new n(this)), "object" != typeof i && i ? e[i] && a ? r = e[i].apply(a, Array.prototype.slice.call(o, 1)) : t.error("Method " + i + " does not exist on jQuery.caret") : a.reg(i.at, i)
        }), r || this
    }, t.fn.atwho["default"] = {
        at: void 0,
        alias: void 0,
        data: null,
        displayTpl: "<li>${name}</li>",
        insertTpl: "${atwho-at}${name}",
        callbacks: r,
        searchKey: "name",
        suffix: void 0,
        hideWithoutSuffix: !1,
        startWithSpace: !0,
        highlightFirst: !0,
        limit: 5,
        maxLen: 20,
        displayTimeout: 300,
        delay: null
    }
});
/*!
 * Flickity PACKAGED v2.0.5
 * Touch, responsive, flickable carousels
 *
 * Licensed GPLv3 for open source use
 * or Flickity Commercial License for commercial use
 *
 * http://flickity.metafizzy.co
 * Copyright 2016 Metafizzy
 */

!function (t, e) {
    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function (t, e) {
    "use strict";
    function i(i, o, a) {
        function l(t, e, n) {
            var s, o = "$()." + i + '("' + e + '")';
            return t.each(function (t, l) {
                var h = a.data(l, i);
                if (!h)return void r(i + " not initialized. Cannot call methods, i.e. " + o);
                var c = h[e];
                if (!c || "_" == e.charAt(0))return void r(o + " is not a valid method");
                var d = c.apply(h, n);
                s = void 0 === s ? d : s
            }), void 0 !== s ? s : t
        }

        function h(t, e) {
            t.each(function (t, n) {
                var s = a.data(n, i);
                s ? (s.option(e), s._init()) : (s = new o(n, e), a.data(n, i, s))
            })
        }

        a = a || e || t.jQuery, a && (o.prototype.option || (o.prototype.option = function (t) {
            a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
        }), a.fn[i] = function (t) {
            if ("string" == typeof t) {
                var e = s.call(arguments, 1);
                return l(this, t, e)
            }
            return h(this, t), this
        }, n(a))
    }

    function n(t) {
        !t || t && t.bridget || (t.bridget = i)
    }

    var s = Array.prototype.slice, o = t.console, r = "undefined" == typeof o ? function () {
        } : function (t) {
            o.error(t)
        };
    return n(e || t.jQuery), i
}), function (t, e) {
    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function () {
    function t() {
    }

    var e = t.prototype;
    return e.on = function (t, e) {
        if (t && e) {
            var i = this._events = this._events || {}, n = i[t] = i[t] || [];
            return n.indexOf(e) == -1 && n.push(e), this
        }
    }, e.once = function (t, e) {
        if (t && e) {
            this.on(t, e);
            var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {};
            return n[e] = !0, this
        }
    }, e.off = function (t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            var n = i.indexOf(e);
            return n != -1 && i.splice(n, 1), this
        }
    }, e.emitEvent = function (t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            var n = 0, s = i[n];
            e = e || [];
            for (var o = this._onceEvents && this._onceEvents[t]; s;) {
                var r = o && o[s];
                r && (this.off(t, s), delete o[s]), s.apply(this, e), n += r ? 0 : 1, s = i[n]
            }
            return this
        }
    }, t
}), function (t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("get-size/get-size", [], function () {
            return e()
        }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function () {
    "use strict";
    function t(t) {
        var e = parseFloat(t), i = t.indexOf("%") == -1 && !isNaN(e);
        return i && e
    }

    function e() {
    }

    function i() {
        for (var t = {
            width: 0,
            height: 0,
            innerWidth: 0,
            innerHeight: 0,
            outerWidth: 0,
            outerHeight: 0
        }, e = 0; e < h; e++) {
            var i = l[e];
            t[i] = 0
        }
        return t
    }

    function n(t) {
        var e = getComputedStyle(t);
        return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e
    }

    function s() {
        if (!c) {
            c = !0;
            var e = document.createElement("div");
            e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
            var i = document.body || document.documentElement;
            i.appendChild(e);
            var s = n(e);
            o.isBoxSizeOuter = r = 200 == t(s.width), i.removeChild(e)
        }
    }

    function o(e) {
        if (s(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
            var o = n(e);
            if ("none" == o.display)return i();
            var a = {};
            a.width = e.offsetWidth, a.height = e.offsetHeight;
            for (var c = a.isBorderBox = "border-box" == o.boxSizing, d = 0; d < h; d++) {
                var u = l[d], f = o[u], p = parseFloat(f);
                a[u] = isNaN(p) ? 0 : p
            }
            var v = a.paddingLeft + a.paddingRight, g = a.paddingTop + a.paddingBottom, m = a.marginLeft + a.marginRight, y = a.marginTop + a.marginBottom, S = a.borderLeftWidth + a.borderRightWidth, E = a.borderTopWidth + a.borderBottomWidth, b = c && r, x = t(o.width);
            x !== !1 && (a.width = x + (b ? 0 : v + S));
            var C = t(o.height);
            return C !== !1 && (a.height = C + (b ? 0 : g + E)), a.innerWidth = a.width - (v + S), a.innerHeight = a.height - (g + E), a.outerWidth = a.width + m, a.outerHeight = a.height + y, a
        }
    }

    var r, a = "undefined" == typeof console ? e : function (t) {
            console.error(t)
        }, l = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], h = l.length, c = !1;
    return o
}), function (t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function () {
    "use strict";
    var t = function () {
        var t = Element.prototype;
        if (t.matches)return "matches";
        if (t.matchesSelector)return "matchesSelector";
        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
            var n = e[i], s = n + "MatchesSelector";
            if (t[s])return s
        }
    }();
    return function (e, i) {
        return e[t](i)
    }
}), function (t, e) {
    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function (t, e) {
    var i = {};
    i.extend = function (t, e) {
        for (var i in e)t[i] = e[i];
        return t
    }, i.modulo = function (t, e) {
        return (t % e + e) % e
    }, i.makeArray = function (t) {
        var e = [];
        if (Array.isArray(t)) e = t; else if (t && "number" == typeof t.length)for (var i = 0; i < t.length; i++)e.push(t[i]); else e.push(t);
        return e
    }, i.removeFrom = function (t, e) {
        var i = t.indexOf(e);
        i != -1 && t.splice(i, 1)
    }, i.getParent = function (t, i) {
        for (; t != document.body;)if (t = t.parentNode, e(t, i))return t
    }, i.getQueryElement = function (t) {
        return "string" == typeof t ? document.querySelector(t) : t
    }, i.handleEvent = function (t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, i.filterFindElements = function (t, n) {
        t = i.makeArray(t);
        var s = [];
        return t.forEach(function (t) {
            if (t instanceof HTMLElement) {
                if (!n)return void s.push(t);
                e(t, n) && s.push(t);
                for (var i = t.querySelectorAll(n), o = 0; o < i.length; o++)s.push(i[o])
            }
        }), s
    }, i.debounceMethod = function (t, e, i) {
        var n = t.prototype[e], s = e + "Timeout";
        t.prototype[e] = function () {
            var t = this[s];
            t && clearTimeout(t);
            var e = arguments, o = this;
            this[s] = setTimeout(function () {
                n.apply(o, e), delete o[s]
            }, i || 100)
        }
    }, i.docReady = function (t) {
        var e = document.readyState;
        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
    }, i.toDashed = function (t) {
        return t.replace(/(.)([A-Z])/g, function (t, e, i) {
            return e + "-" + i
        }).toLowerCase()
    };
    var n = t.console;
    return i.htmlInit = function (e, s) {
        i.docReady(function () {
            var o = i.toDashed(s), r = "data-" + o, a = document.querySelectorAll("[" + r + "]"), l = document.querySelectorAll(".js-" + o), h = i.makeArray(a).concat(i.makeArray(l)), c = r + "-options", d = t.jQuery;
            h.forEach(function (t) {
                var i, o = t.getAttribute(r) || t.getAttribute(c);
                try {
                    i = o && JSON.parse(o)
                } catch (a) {
                    return void(n && n.error("Error parsing " + r + " on " + t.className + ": " + a))
                }
                var l = new e(t, i);
                d && d.data(t, s, l)
            })
        })
    }, i
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/cell", ["get-size/get-size"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("get-size")) : (t.Flickity = t.Flickity || {}, t.Flickity.Cell = e(t, t.getSize))
}(window, function (t, e) {
    function i(t, e) {
        this.element = t, this.parent = e, this.create()
    }

    var n = i.prototype;
    return n.create = function () {
        this.element.style.position = "absolute", this.x = 0, this.shift = 0
    }, n.destroy = function () {
        this.element.style.position = "";
        var t = this.parent.originSide;
        this.element.style[t] = ""
    }, n.getSize = function () {
        this.size = e(this.element)
    }, n.setPosition = function (t) {
        this.x = t, this.updateTarget(), this.renderPosition(t)
    }, n.updateTarget = n.setDefaultTarget = function () {
        var t = "left" == this.parent.originSide ? "marginLeft" : "marginRight";
        this.target = this.x + this.size[t] + this.size.width * this.parent.cellAlign
    }, n.renderPosition = function (t) {
        var e = this.parent.originSide;
        this.element.style[e] = this.parent.getPositionValue(t)
    }, n.wrapShift = function (t) {
        this.shift = t, this.renderPosition(this.x + this.parent.slideableWidth * t)
    }, n.remove = function () {
        this.element.parentNode.removeChild(this.element)
    }, i
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/slide", e) : "object" == typeof module && module.exports ? module.exports = e() : (t.Flickity = t.Flickity || {}, t.Flickity.Slide = e())
}(window, function () {
    "use strict";
    function t(t) {
        this.parent = t, this.isOriginLeft = "left" == t.originSide, this.cells = [], this.outerWidth = 0, this.height = 0
    }

    var e = t.prototype;
    return e.addCell = function (t) {
        if (this.cells.push(t), this.outerWidth += t.size.outerWidth, this.height = Math.max(t.size.outerHeight, this.height), 1 == this.cells.length) {
            this.x = t.x;
            var e = this.isOriginLeft ? "marginLeft" : "marginRight";
            this.firstMargin = t.size[e]
        }
    }, e.updateTarget = function () {
        var t = this.isOriginLeft ? "marginRight" : "marginLeft", e = this.getLastCell(), i = e ? e.size[t] : 0, n = this.outerWidth - (this.firstMargin + i);
        this.target = this.x + this.firstMargin + n * this.parent.cellAlign
    }, e.getLastCell = function () {
        return this.cells[this.cells.length - 1]
    }, e.select = function () {
        this.changeSelectedClass("add")
    }, e.unselect = function () {
        this.changeSelectedClass("remove")
    }, e.changeSelectedClass = function (t) {
        this.cells.forEach(function (e) {
            e.element.classList[t]("is-selected")
        })
    }, e.getCellElements = function () {
        return this.cells.map(function (t) {
            return t.element
        })
    }, t
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/animate", ["fizzy-ui-utils/utils"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("fizzy-ui-utils")) : (t.Flickity = t.Flickity || {}, t.Flickity.animatePrototype = e(t, t.fizzyUIUtils))
}(window, function (t, e) {
    var i = t.requestAnimationFrame || t.webkitRequestAnimationFrame, n = 0;
    i || (i = function (t) {
        var e = (new Date).getTime(), i = Math.max(0, 16 - (e - n)), s = setTimeout(t, i);
        return n = e + i, s
    });
    var s = {};
    s.startAnimation = function () {
        this.isAnimating || (this.isAnimating = !0, this.restingFrames = 0, this.animate())
    }, s.animate = function () {
        this.applyDragForce(), this.applySelectedAttraction();
        var t = this.x;
        if (this.integratePhysics(), this.positionSlider(), this.settle(t), this.isAnimating) {
            var e = this;
            i(function () {
                e.animate()
            })
        }
    };
    var o = function () {
        var t = document.documentElement.style;
        return "string" == typeof t.transform ? "transform" : "WebkitTransform"
    }();
    return s.positionSlider = function () {
        var t = this.x;
        this.options.wrapAround && this.cells.length > 1 && (t = e.modulo(t, this.slideableWidth), t -= this.slideableWidth, this.shiftWrapCells(t)), t += this.cursorPosition, t = this.options.rightToLeft && o ? -t : t;
        var i = this.getPositionValue(t);
        this.slider.style[o] = this.isAnimating ? "translate3d(" + i + ",0,0)" : "translateX(" + i + ")";
        var n = this.slides[0];
        if (n) {
            var s = -this.x - n.target, r = s / this.slidesWidth;
            this.dispatchEvent("scroll", null, [r, s])
        }
    }, s.positionSliderAtSelected = function () {
        this.cells.length && (this.x = -this.selectedSlide.target, this.positionSlider())
    }, s.getPositionValue = function (t) {
        return this.options.percentPosition ? .01 * Math.round(t / this.size.innerWidth * 1e4) + "%" : Math.round(t) + "px"
    }, s.settle = function (t) {
        this.isPointerDown || Math.round(100 * this.x) != Math.round(100 * t) || this.restingFrames++, this.restingFrames > 2 && (this.isAnimating = !1, delete this.isFreeScrolling, this.positionSlider(), this.dispatchEvent("settle"))
    }, s.shiftWrapCells = function (t) {
        var e = this.cursorPosition + t;
        this._shiftCells(this.beforeShiftCells, e, -1);
        var i = this.size.innerWidth - (t + this.slideableWidth + this.cursorPosition);
        this._shiftCells(this.afterShiftCells, i, 1)
    }, s._shiftCells = function (t, e, i) {
        for (var n = 0; n < t.length; n++) {
            var s = t[n], o = e > 0 ? i : 0;
            s.wrapShift(o), e -= s.size.outerWidth
        }
    }, s._unshiftCells = function (t) {
        if (t && t.length)for (var e = 0; e < t.length; e++)t[e].wrapShift(0)
    }, s.integratePhysics = function () {
        this.x += this.velocity, this.velocity *= this.getFrictionFactor()
    }, s.applyForce = function (t) {
        this.velocity += t
    }, s.getFrictionFactor = function () {
        return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"]
    }, s.getRestingPosition = function () {
        return this.x + this.velocity / (1 - this.getFrictionFactor())
    }, s.applyDragForce = function () {
        if (this.isPointerDown) {
            var t = this.dragX - this.x, e = t - this.velocity;
            this.applyForce(e)
        }
    }, s.applySelectedAttraction = function () {
        if (!this.isPointerDown && !this.isFreeScrolling && this.cells.length) {
            var t = this.selectedSlide.target * -1 - this.x, e = t * this.options.selectedAttraction;
            this.applyForce(e)
        }
    }, s
}), function (t, e) {
    if ("function" == typeof define && define.amd) define("flickity/js/flickity", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./cell", "./slide", "./animate"], function (i, n, s, o, r, a) {
        return e(t, i, n, s, o, r, a)
    }); else if ("object" == typeof module && module.exports) module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./cell"), require("./slide"), require("./animate")); else {
        var i = t.Flickity;
        t.Flickity = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, i.Cell, i.Slide, i.animatePrototype)
    }
}(window, function (t, e, i, n, s, o, r) {
    function a(t, e) {
        for (t = n.makeArray(t); t.length;)e.appendChild(t.shift())
    }

    function l(t, e) {
        var i = n.getQueryElement(t);
        if (!i)return void(d && d.error("Bad element for Flickity: " + (i || t)));
        if (this.element = i, this.element.flickityGUID) {
            var s = f[this.element.flickityGUID];
            return s.option(e), s
        }
        h && (this.$element = h(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e), this._create()
    }

    var h = t.jQuery, c = t.getComputedStyle, d = t.console, u = 0, f = {};
    l.defaults = {
        accessibility: !0,
        cellAlign: "center",
        freeScrollFriction: .075,
        friction: .28,
        namespaceJQueryEvents: !0,
        percentPosition: !0,
        resize: !0,
        selectedAttraction: .025,
        setGallerySize: !0
    }, l.createMethods = [];
    var p = l.prototype;
    n.extend(p, e.prototype), p._create = function () {
        var e = this.guid = ++u;
        this.element.flickityGUID = e, f[e] = this, this.selectedIndex = 0, this.restingFrames = 0, this.x = 0, this.velocity = 0, this.originSide = this.options.rightToLeft ? "right" : "left", this.viewport = document.createElement("div"), this.viewport.className = "flickity-viewport", this._createSlider(), (this.options.resize || this.options.watchCSS) && t.addEventListener("resize", this), l.createMethods.forEach(function (t) {
            this[t]()
        }, this), this.options.watchCSS ? this.watchCSS() : this.activate()
    }, p.option = function (t) {
        n.extend(this.options, t)
    }, p.activate = function () {
        if (!this.isActive) {
            this.isActive = !0, this.element.classList.add("flickity-enabled"), this.options.rightToLeft && this.element.classList.add("flickity-rtl"), this.getSize();
            var t = this._filterFindCellElements(this.element.children);
            a(t, this.slider), this.viewport.appendChild(this.slider), this.element.appendChild(this.viewport), this.reloadCells(), this.options.accessibility && (this.element.tabIndex = 0, this.element.addEventListener("keydown", this)), this.emitEvent("activate");
            var e, i = this.options.initialIndex;
            e = this.isInitActivated ? this.selectedIndex : void 0 !== i && this.cells[i] ? i : 0, this.select(e, !1, !0), this.isInitActivated = !0
        }
    }, p._createSlider = function () {
        var t = document.createElement("div");
        t.className = "flickity-slider", t.style[this.originSide] = 0, this.slider = t
    }, p._filterFindCellElements = function (t) {
        return n.filterFindElements(t, this.options.cellSelector)
    }, p.reloadCells = function () {
        this.cells = this._makeCells(this.slider.children), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize()
    }, p._makeCells = function (t) {
        var e = this._filterFindCellElements(t), i = e.map(function (t) {
            return new s(t, this)
        }, this);
        return i
    }, p.getLastCell = function () {
        return this.cells[this.cells.length - 1]
    }, p.getLastSlide = function () {
        return this.slides[this.slides.length - 1]
    }, p.positionCells = function () {
        this._sizeCells(this.cells), this._positionCells(0)
    }, p._positionCells = function (t) {
        t = t || 0, this.maxCellHeight = t ? this.maxCellHeight || 0 : 0;
        var e = 0;
        if (t > 0) {
            var i = this.cells[t - 1];
            e = i.x + i.size.outerWidth
        }
        for (var n = this.cells.length, s = t; s < n; s++) {
            var o = this.cells[s];
            o.setPosition(e), e += o.size.outerWidth, this.maxCellHeight = Math.max(o.size.outerHeight, this.maxCellHeight)
        }
        this.slideableWidth = e, this.updateSlides(), this._containSlides(), this.slidesWidth = n ? this.getLastSlide().target - this.slides[0].target : 0
    }, p._sizeCells = function (t) {
        t.forEach(function (t) {
            t.getSize()
        })
    }, p.updateSlides = function () {
        if (this.slides = [], this.cells.length) {
            var t = new o(this);
            this.slides.push(t);
            var e = "left" == this.originSide, i = e ? "marginRight" : "marginLeft", n = this._getCanCellFit();
            this.cells.forEach(function (e, s) {
                if (!t.cells.length)return void t.addCell(e);
                var r = t.outerWidth - t.firstMargin + (e.size.outerWidth - e.size[i]);
                n.call(this, s, r) ? t.addCell(e) : (t.updateTarget(), t = new o(this), this.slides.push(t), t.addCell(e))
            }, this), t.updateTarget(), this.updateSelectedSlide()
        }
    }, p._getCanCellFit = function () {
        var t = this.options.groupCells;
        if (!t)return function () {
            return !1
        };
        if ("number" == typeof t) {
            var e = parseInt(t, 10);
            return function (t) {
                return t % e !== 0
            }
        }
        var i = "string" == typeof t && t.match(/^(\d+)%$/), n = i ? parseInt(i[1], 10) / 100 : 1;
        return function (t, e) {
            return e <= (this.size.innerWidth + 1) * n
        }
    }, p._init = p.reposition = function () {
        this.positionCells(), this.positionSliderAtSelected()
    }, p.getSize = function () {
        this.size = i(this.element), this.setCellAlign(), this.cursorPosition = this.size.innerWidth * this.cellAlign
    };
    var v = {center: {left: .5, right: .5}, left: {left: 0, right: 1}, right: {right: 0, left: 1}};
    return p.setCellAlign = function () {
        var t = v[this.options.cellAlign];
        this.cellAlign = t ? t[this.originSide] : this.options.cellAlign
    }, p.setGallerySize = function () {
        if (this.options.setGallerySize) {
            var t = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;
            this.viewport.style.height = t + "px"
        }
    }, p._getWrapShiftCells = function () {
        if (this.options.wrapAround) {
            this._unshiftCells(this.beforeShiftCells), this._unshiftCells(this.afterShiftCells);
            var t = this.cursorPosition, e = this.cells.length - 1;
            this.beforeShiftCells = this._getGapCells(t, e, -1), t = this.size.innerWidth - this.cursorPosition, this.afterShiftCells = this._getGapCells(t, 0, 1)
        }
    }, p._getGapCells = function (t, e, i) {
        for (var n = []; t > 0;) {
            var s = this.cells[e];
            if (!s)break;
            n.push(s), e += i, t -= s.size.outerWidth
        }
        return n
    }, p._containSlides = function () {
        if (this.options.contain && !this.options.wrapAround && this.cells.length) {
            var t = this.options.rightToLeft, e = t ? "marginRight" : "marginLeft", i = t ? "marginLeft" : "marginRight", n = this.slideableWidth - this.getLastCell().size[i], s = n < this.size.innerWidth, o = this.cursorPosition + this.cells[0].size[e], r = n - this.size.innerWidth * (1 - this.cellAlign);
            this.slides.forEach(function (t) {
                s ? t.target = n * this.cellAlign : (t.target = Math.max(t.target, o), t.target = Math.min(t.target, r))
            }, this)
        }
    }, p.dispatchEvent = function (t, e, i) {
        var n = e ? [e].concat(i) : i;
        if (this.emitEvent(t, n), h && this.$element) {
            t += this.options.namespaceJQueryEvents ? ".flickity" : "";
            var s = t;
            if (e) {
                var o = h.Event(e);
                o.type = t, s = o
            }
            this.$element.trigger(s, i)
        }
    }, p.select = function (t, e, i) {
        this.isActive && (t = parseInt(t, 10), this._wrapSelect(t), (this.options.wrapAround || e) && (t = n.modulo(t, this.slides.length)), this.slides[t] && (this.selectedIndex = t, this.updateSelectedSlide(), i ? this.positionSliderAtSelected() : this.startAnimation(), this.options.adaptiveHeight && this.setGallerySize(), this.dispatchEvent("select"), this.dispatchEvent("cellSelect")))
    }, p._wrapSelect = function (t) {
        var e = this.slides.length, i = this.options.wrapAround && e > 1;
        if (!i)return t;
        var s = n.modulo(t, e), o = Math.abs(s - this.selectedIndex), r = Math.abs(s + e - this.selectedIndex), a = Math.abs(s - e - this.selectedIndex);
        !this.isDragSelect && r < o ? t += e : !this.isDragSelect && a < o && (t -= e), t < 0 ? this.x -= this.slideableWidth : t >= e && (this.x += this.slideableWidth)
    }, p.previous = function (t, e) {
        this.select(this.selectedIndex - 1, t, e)
    }, p.next = function (t, e) {
        this.select(this.selectedIndex + 1, t, e)
    }, p.updateSelectedSlide = function () {
        var t = this.slides[this.selectedIndex];
        t && (this.unselectSelectedSlide(), this.selectedSlide = t, t.select(), this.selectedCells = t.cells, this.selectedElements = t.getCellElements(), this.selectedCell = t.cells[0], this.selectedElement = this.selectedElements[0])
    }, p.unselectSelectedSlide = function () {
        this.selectedSlide && this.selectedSlide.unselect()
    }, p.selectCell = function (t, e, i) {
        var n;
        "number" == typeof t ? n = this.cells[t] : ("string" == typeof t && (t = this.element.querySelector(t)), n = this.getCell(t));
        for (var s = 0; n && s < this.slides.length; s++) {
            var o = this.slides[s], r = o.cells.indexOf(n);
            if (r != -1)return void this.select(s, e, i)
        }
    }, p.getCell = function (t) {
        for (var e = 0; e < this.cells.length; e++) {
            var i = this.cells[e];
            if (i.element == t)return i
        }
    }, p.getCells = function (t) {
        t = n.makeArray(t);
        var e = [];
        return t.forEach(function (t) {
            var i = this.getCell(t);
            i && e.push(i)
        }, this), e
    }, p.getCellElements = function () {
        return this.cells.map(function (t) {
            return t.element
        })
    }, p.getParentCell = function (t) {
        var e = this.getCell(t);
        return e ? e : (t = n.getParent(t, ".flickity-slider > *"), this.getCell(t))
    }, p.getAdjacentCellElements = function (t, e) {
        if (!t)return this.selectedSlide.getCellElements();
        e = void 0 === e ? this.selectedIndex : e;
        var i = this.slides.length;
        if (1 + 2 * t >= i)return this.getCellElements();
        for (var s = [], o = e - t; o <= e + t; o++) {
            var r = this.options.wrapAround ? n.modulo(o, i) : o, a = this.slides[r];
            a && (s = s.concat(a.getCellElements()))
        }
        return s
    }, p.uiChange = function () {
        this.emitEvent("uiChange")
    }, p.childUIPointerDown = function (t) {
        this.emitEvent("childUIPointerDown", [t])
    }, p.onresize = function () {
        this.watchCSS(), this.resize()
    }, n.debounceMethod(l, "onresize", 150), p.resize = function () {
        if (this.isActive) {
            this.getSize(), this.options.wrapAround && (this.x = n.modulo(this.x, this.slideableWidth)), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("resize");
            var t = this.selectedElements && this.selectedElements[0];
            this.selectCell(t, !1, !0)
        }
    }, p.watchCSS = function () {
        var t = this.options.watchCSS;
        if (t) {
            var e = c(this.element, ":after").content;
            e.indexOf("flickity") != -1 ? this.activate() : this.deactivate()
        }
    }, p.onkeydown = function (t) {
        if (this.options.accessibility && (!document.activeElement || document.activeElement == this.element))if (37 == t.keyCode) {
            var e = this.options.rightToLeft ? "next" : "previous";
            this.uiChange(), this[e]()
        } else if (39 == t.keyCode) {
            var i = this.options.rightToLeft ? "previous" : "next";
            this.uiChange(), this[i]()
        }
    }, p.deactivate = function () {
        this.isActive && (this.element.classList.remove("flickity-enabled"), this.element.classList.remove("flickity-rtl"), this.cells.forEach(function (t) {
            t.destroy()
        }), this.unselectSelectedSlide(), this.element.removeChild(this.viewport), a(this.slider.children, this.element), this.options.accessibility && (this.element.removeAttribute("tabIndex"), this.element.removeEventListener("keydown", this)), this.isActive = !1, this.emitEvent("deactivate"))
    }, p.destroy = function () {
        this.deactivate(), t.removeEventListener("resize", this), this.emitEvent("destroy"), h && this.$element && h.removeData(this.element, "flickity"), delete this.element.flickityGUID, delete f[this.guid]
    }, n.extend(p, r), l.data = function (t) {
        t = n.getQueryElement(t);
        var e = t && t.flickityGUID;
        return e && f[e]
    }, n.htmlInit(l, "flickity"), h && h.bridget && h.bridget("flickity", l), l.Cell = s, l
}), function (t, e) {
    "function" == typeof define && define.amd ? define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.Unipointer = e(t, t.EvEmitter)
}(window, function (t, e) {
    function i() {
    }

    function n() {
    }

    var s = n.prototype = Object.create(e.prototype);
    s.bindStartEvent = function (t) {
        this._bindStartEvent(t, !0)
    }, s.unbindStartEvent = function (t) {
        this._bindStartEvent(t, !1)
    }, s._bindStartEvent = function (e, i) {
        i = void 0 === i || !!i;
        var n = i ? "addEventListener" : "removeEventListener";
        t.navigator.pointerEnabled ? e[n]("pointerdown", this) : t.navigator.msPointerEnabled ? e[n]("MSPointerDown", this) : (e[n]("mousedown", this), e[n]("touchstart", this))
    }, s.handleEvent = function (t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, s.getTouch = function (t) {
        for (var e = 0; e < t.length; e++) {
            var i = t[e];
            if (i.identifier == this.pointerIdentifier)return i
        }
    }, s.onmousedown = function (t) {
        var e = t.button;
        e && 0 !== e && 1 !== e || this._pointerDown(t, t)
    }, s.ontouchstart = function (t) {
        this._pointerDown(t, t.changedTouches[0])
    }, s.onMSPointerDown = s.onpointerdown = function (t) {
        this._pointerDown(t, t)
    }, s._pointerDown = function (t, e) {
        this.isPointerDown || (this.isPointerDown = !0, this.pointerIdentifier = void 0 !== e.pointerId ? e.pointerId : e.identifier, this.pointerDown(t, e))
    }, s.pointerDown = function (t, e) {
        this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e])
    };
    var o = {
        mousedown: ["mousemove", "mouseup"],
        touchstart: ["touchmove", "touchend", "touchcancel"],
        pointerdown: ["pointermove", "pointerup", "pointercancel"],
        MSPointerDown: ["MSPointerMove", "MSPointerUp", "MSPointerCancel"]
    };
    return s._bindPostStartEvents = function (e) {
        if (e) {
            var i = o[e.type];
            i.forEach(function (e) {
                t.addEventListener(e, this)
            }, this), this._boundPointerEvents = i
        }
    }, s._unbindPostStartEvents = function () {
        this._boundPointerEvents && (this._boundPointerEvents.forEach(function (e) {
            t.removeEventListener(e, this)
        }, this), delete this._boundPointerEvents)
    }, s.onmousemove = function (t) {
        this._pointerMove(t, t)
    }, s.onMSPointerMove = s.onpointermove = function (t) {
        t.pointerId == this.pointerIdentifier && this._pointerMove(t, t)
    }, s.ontouchmove = function (t) {
        var e = this.getTouch(t.changedTouches);
        e && this._pointerMove(t, e)
    }, s._pointerMove = function (t, e) {
        this.pointerMove(t, e)
    }, s.pointerMove = function (t, e) {
        this.emitEvent("pointerMove", [t, e])
    }, s.onmouseup = function (t) {
        this._pointerUp(t, t)
    }, s.onMSPointerUp = s.onpointerup = function (t) {
        t.pointerId == this.pointerIdentifier && this._pointerUp(t, t)
    }, s.ontouchend = function (t) {
        var e = this.getTouch(t.changedTouches);
        e && this._pointerUp(t, e)
    }, s._pointerUp = function (t, e) {
        this._pointerDone(), this.pointerUp(t, e)
    }, s.pointerUp = function (t, e) {
        this.emitEvent("pointerUp", [t, e])
    }, s._pointerDone = function () {
        this.isPointerDown = !1, delete this.pointerIdentifier, this._unbindPostStartEvents(), this.pointerDone()
    }, s.pointerDone = i, s.onMSPointerCancel = s.onpointercancel = function (t) {
        t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t)
    }, s.ontouchcancel = function (t) {
        var e = this.getTouch(t.changedTouches);
        e && this._pointerCancel(t, e)
    }, s._pointerCancel = function (t, e) {
        this._pointerDone(), this.pointerCancel(t, e)
    }, s.pointerCancel = function (t, e) {
        this.emitEvent("pointerCancel", [t, e])
    }, n.getPointerPoint = function (t) {
        return {x: t.pageX, y: t.pageY}
    }, n
}), function (t, e) {
    "function" == typeof define && define.amd ? define("unidragger/unidragger", ["unipointer/unipointer"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.Unidragger = e(t, t.Unipointer)
}(window, function (t, e) {
    function i() {
    }

    function n() {
    }

    var s = n.prototype = Object.create(e.prototype);
    s.bindHandles = function () {
        this._bindHandles(!0)
    }, s.unbindHandles = function () {
        this._bindHandles(!1)
    };
    var o = t.navigator;
    return s._bindHandles = function (t) {
        t = void 0 === t || !!t;
        var e;
        e = o.pointerEnabled ? function (e) {
                e.style.touchAction = t ? "none" : ""
            } : o.msPointerEnabled ? function (e) {
                    e.style.msTouchAction = t ? "none" : ""
                } : i;
        for (var n = t ? "addEventListener" : "removeEventListener", s = 0; s < this.handles.length; s++) {
            var r = this.handles[s];
            this._bindStartEvent(r, t), e(r), r[n]("click", this)
        }
    }, s.pointerDown = function (t, e) {
        if ("INPUT" == t.target.nodeName && "range" == t.target.type)return this.isPointerDown = !1, void delete this.pointerIdentifier;
        this._dragPointerDown(t, e);
        var i = document.activeElement;
        i && i.blur && i.blur(), this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e])
    }, s._dragPointerDown = function (t, i) {
        this.pointerDownPoint = e.getPointerPoint(i);
        var n = this.canPreventDefaultOnPointerDown(t, i);
        n && t.preventDefault()
    }, s.canPreventDefaultOnPointerDown = function (t) {
        return "SELECT" != t.target.nodeName
    }, s.pointerMove = function (t, e) {
        var i = this._dragPointerMove(t, e);
        this.emitEvent("pointerMove", [t, e, i]), this._dragMove(t, e, i)
    }, s._dragPointerMove = function (t, i) {
        var n = e.getPointerPoint(i), s = {x: n.x - this.pointerDownPoint.x, y: n.y - this.pointerDownPoint.y};
        return !this.isDragging && this.hasDragStarted(s) && this._dragStart(t, i), s
    }, s.hasDragStarted = function (t) {
        return Math.abs(t.x) > 3 || Math.abs(t.y) > 3
    }, s.pointerUp = function (t, e) {
        this.emitEvent("pointerUp", [t, e]), this._dragPointerUp(t, e)
    }, s._dragPointerUp = function (t, e) {
        this.isDragging ? this._dragEnd(t, e) : this._staticClick(t, e)
    }, s._dragStart = function (t, i) {
        this.isDragging = !0, this.dragStartPoint = e.getPointerPoint(i), this.isPreventingClicks = !0, this.dragStart(t, i)
    }, s.dragStart = function (t, e) {
        this.emitEvent("dragStart", [t, e])
    }, s._dragMove = function (t, e, i) {
        this.isDragging && this.dragMove(t, e, i)
    }, s.dragMove = function (t, e, i) {
        t.preventDefault(), this.emitEvent("dragMove", [t, e, i])
    }, s._dragEnd = function (t, e) {
        this.isDragging = !1, setTimeout(function () {
            delete this.isPreventingClicks
        }.bind(this)), this.dragEnd(t, e)
    }, s.dragEnd = function (t, e) {
        this.emitEvent("dragEnd", [t, e])
    }, s.onclick = function (t) {
        this.isPreventingClicks && t.preventDefault()
    }, s._staticClick = function (t, e) {
        if (!this.isIgnoringMouseUp || "mouseup" != t.type) {
            var i = t.target.nodeName;
            "INPUT" != i && "TEXTAREA" != i || t.target.focus(), this.staticClick(t, e), "mouseup" != t.type && (this.isIgnoringMouseUp = !0, setTimeout(function () {
                delete this.isIgnoringMouseUp
            }.bind(this), 400))
        }
    }, s.staticClick = function (t, e) {
        this.emitEvent("staticClick", [t, e])
    }, n.getPointerPoint = e.getPointerPoint, n
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/drag", ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], function (i, n, s) {
            return e(t, i, n, s)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("unidragger"), require("fizzy-ui-utils")) : t.Flickity = e(t, t.Flickity, t.Unidragger, t.fizzyUIUtils)
}(window, function (t, e, i, n) {
    function s() {
        return {x: t.pageXOffset, y: t.pageYOffset}
    }

    n.extend(e.defaults, {draggable: !0, dragThreshold: 3}), e.createMethods.push("_createDrag");
    var o = e.prototype;
    n.extend(o, i.prototype);
    var r = "createTouch" in document, a = !1;
    o._createDrag = function () {
        this.on("activate", this.bindDrag), this.on("uiChange", this._uiChangeDrag), this.on("childUIPointerDown", this._childUIPointerDownDrag), this.on("deactivate", this.unbindDrag), r && !a && (t.addEventListener("touchmove", function () {
        }), a = !0)
    }, o.bindDrag = function () {
        this.options.draggable && !this.isDragBound && (this.element.classList.add("is-draggable"), this.handles = [this.viewport], this.bindHandles(), this.isDragBound = !0)
    }, o.unbindDrag = function () {
        this.isDragBound && (this.element.classList.remove("is-draggable"), this.unbindHandles(), delete this.isDragBound)
    }, o._uiChangeDrag = function () {
        delete this.isFreeScrolling
    }, o._childUIPointerDownDrag = function (t) {
        t.preventDefault(), this.pointerDownFocus(t)
    };
    var l = {TEXTAREA: !0, INPUT: !0, OPTION: !0}, h = {
        radio: !0,
        checkbox: !0,
        button: !0,
        submit: !0,
        image: !0,
        file: !0
    };
    o.pointerDown = function (e, i) {
        var n = l[e.target.nodeName] && !h[e.target.type];
        if (n)return this.isPointerDown = !1, void delete this.pointerIdentifier;
        this._dragPointerDown(e, i);
        var o = document.activeElement;
        o && o.blur && o != this.element && o != document.body && o.blur(), this.pointerDownFocus(e), this.dragX = this.x, this.viewport.classList.add("is-pointer-down"), this._bindPostStartEvents(e), this.pointerDownScroll = s(), t.addEventListener("scroll", this), this.dispatchEvent("pointerDown", e, [i])
    };
    var c = {touchstart: !0, MSPointerDown: !0}, d = {INPUT: !0, SELECT: !0};
    return o.pointerDownFocus = function (e) {
        if (this.options.accessibility && !c[e.type] && !d[e.target.nodeName]) {
            var i = t.pageYOffset;
            this.element.focus(), t.pageYOffset != i && t.scrollTo(t.pageXOffset, i)
        }
    }, o.canPreventDefaultOnPointerDown = function (t) {
        var e = "touchstart" == t.type, i = t.target.nodeName;
        return !e && "SELECT" != i
    }, o.hasDragStarted = function (t) {
        return Math.abs(t.x) > this.options.dragThreshold
    }, o.pointerUp = function (t, e) {
        delete this.isTouchScrolling, this.viewport.classList.remove("is-pointer-down"), this.dispatchEvent("pointerUp", t, [e]), this._dragPointerUp(t, e)
    }, o.pointerDone = function () {
        t.removeEventListener("scroll", this), delete this.pointerDownScroll
    }, o.dragStart = function (e, i) {
        this.dragStartPosition = this.x, this.startAnimation(), t.removeEventListener("scroll", this), this.dispatchEvent("dragStart", e, [i])
    }, o.pointerMove = function (t, e) {
        var i = this._dragPointerMove(t, e);
        this.dispatchEvent("pointerMove", t, [e, i]), this._dragMove(t, e, i)
    }, o.dragMove = function (t, e, i) {
        t.preventDefault(), this.previousDragX = this.dragX;
        var n = this.options.rightToLeft ? -1 : 1, s = this.dragStartPosition + i.x * n;
        if (!this.options.wrapAround && this.slides.length) {
            var o = Math.max(-this.slides[0].target, this.dragStartPosition);
            s = s > o ? .5 * (s + o) : s;
            var r = Math.min(-this.getLastSlide().target, this.dragStartPosition);
            s = s < r ? .5 * (s + r) : s
        }
        this.dragX = s, this.dragMoveTime = new Date, this.dispatchEvent("dragMove", t, [e, i])
    }, o.dragEnd = function (t, e) {
        this.options.freeScroll && (this.isFreeScrolling = !0);
        var i = this.dragEndRestingSelect();
        if (this.options.freeScroll && !this.options.wrapAround) {
            var n = this.getRestingPosition();
            this.isFreeScrolling = -n > this.slides[0].target && -n < this.getLastSlide().target
        } else this.options.freeScroll || i != this.selectedIndex || (i += this.dragEndBoostSelect());
        delete this.previousDragX, this.isDragSelect = this.options.wrapAround, this.select(i), delete this.isDragSelect, this.dispatchEvent("dragEnd", t, [e])
    }, o.dragEndRestingSelect = function () {
        var t = this.getRestingPosition(), e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)), i = this._getClosestResting(t, e, 1), n = this._getClosestResting(t, e, -1), s = i.distance < n.distance ? i.index : n.index;
        return s
    }, o._getClosestResting = function (t, e, i) {
        for (var n = this.selectedIndex, s = 1 / 0, o = this.options.contain && !this.options.wrapAround ? function (t, e) {
                return t <= e
            } : function (t, e) {
                return t < e
            }; o(e, s) && (n += i, s = e, e = this.getSlideDistance(-t, n), null !== e);)e = Math.abs(e);
        return {distance: s, index: n - i}
    }, o.getSlideDistance = function (t, e) {
        var i = this.slides.length, s = this.options.wrapAround && i > 1, o = s ? n.modulo(e, i) : e, r = this.slides[o];
        if (!r)return null;
        var a = s ? this.slideableWidth * Math.floor(e / i) : 0;
        return t - (r.target + a)
    }, o.dragEndBoostSelect = function () {
        if (void 0 === this.previousDragX || !this.dragMoveTime || new Date - this.dragMoveTime > 100)return 0;
        var t = this.getSlideDistance(-this.dragX, this.selectedIndex), e = this.previousDragX - this.dragX;
        return t > 0 && e > 0 ? 1 : t < 0 && e < 0 ? -1 : 0
    }, o.staticClick = function (t, e) {
        var i = this.getParentCell(t.target), n = i && i.element, s = i && this.cells.indexOf(i);
        this.dispatchEvent("staticClick", t, [e, n, s])
    }, o.onscroll = function () {
        var t = s(), e = this.pointerDownScroll.x - t.x, i = this.pointerDownScroll.y - t.y;
        (Math.abs(e) > 3 || Math.abs(i) > 3) && this._pointerDone()
    }, e
}), function (t, e) {
    "function" == typeof define && define.amd ? define("tap-listener/tap-listener", ["unipointer/unipointer"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.TapListener = e(t, t.Unipointer)
}(window, function (t, e) {
    function i(t) {
        this.bindTap(t)
    }

    var n = i.prototype = Object.create(e.prototype);
    return n.bindTap = function (t) {
        t && (this.unbindTap(), this.tapElement = t, this._bindStartEvent(t, !0))
    }, n.unbindTap = function () {
        this.tapElement && (this._bindStartEvent(this.tapElement, !0), delete this.tapElement)
    }, n.pointerUp = function (i, n) {
        if (!this.isIgnoringMouseUp || "mouseup" != i.type) {
            var s = e.getPointerPoint(n), o = this.tapElement.getBoundingClientRect(), r = t.pageXOffset, a = t.pageYOffset, l = s.x >= o.left + r && s.x <= o.right + r && s.y >= o.top + a && s.y <= o.bottom + a;
            if (l && this.emitEvent("tap", [i, n]), "mouseup" != i.type) {
                this.isIgnoringMouseUp = !0;
                var h = this;
                setTimeout(function () {
                    delete h.isIgnoringMouseUp
                }, 400)
            }
        }
    }, n.destroy = function () {
        this.pointerDone(), this.unbindTap()
    }, i
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/prev-next-button", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function (i, n, s) {
            return e(t, i, n, s)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils)
}(window, function (t, e, i, n) {
    "use strict";
    function s(t, e) {
        this.direction = t, this.parent = e, this._create()
    }

    function o(t) {
        return "string" == typeof t ? t : "M " + t.x0 + ",50 L " + t.x1 + "," + (t.y1 + 50) + " L " + t.x2 + "," + (t.y2 + 50) + " L " + t.x3 + ",50  L " + t.x2 + "," + (50 - t.y2) + " L " + t.x1 + "," + (50 - t.y1) + " Z"
    }

    var r = "http://www.w3.org/2000/svg";
    s.prototype = new i, s.prototype._create = function () {
        this.isEnabled = !0, this.isPrevious = this.direction == -1;
        var t = this.parent.options.rightToLeft ? 1 : -1;
        this.isLeft = this.direction == t;
        var e = this.element = document.createElement("button");
        e.className = "flickity-prev-next-button", e.className += this.isPrevious ? " previous" : " next", e.setAttribute("type", "button"), this.disable(), e.setAttribute("aria-label", this.isPrevious ? "previous" : "next");
        var i = this.createSVG();
        e.appendChild(i), this.on("tap", this.onTap), this.parent.on("select", this.update.bind(this)), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent))
    }, s.prototype.activate = function () {
        this.bindTap(this.element), this.element.addEventListener("click", this), this.parent.element.appendChild(this.element)
    }, s.prototype.deactivate = function () {
        this.parent.element.removeChild(this.element), i.prototype.destroy.call(this), this.element.removeEventListener("click", this)
    }, s.prototype.createSVG = function () {
        var t = document.createElementNS(r, "svg");
        t.setAttribute("viewBox", "0 0 100 100");
        var e = document.createElementNS(r, "path"), i = o(this.parent.options.arrowShape);
        return e.setAttribute("d", i), e.setAttribute("class", "arrow"), this.isLeft || e.setAttribute("transform", "translate(100, 100) rotate(180) "), t.appendChild(e), t
    }, s.prototype.onTap = function () {
        if (this.isEnabled) {
            this.parent.uiChange();
            var t = this.isPrevious ? "previous" : "next";
            this.parent[t]()
        }
    }, s.prototype.handleEvent = n.handleEvent, s.prototype.onclick = function () {
        var t = document.activeElement;
        t && t == this.element && this.onTap()
    }, s.prototype.enable = function () {
        this.isEnabled || (this.element.disabled = !1, this.isEnabled = !0)
    }, s.prototype.disable = function () {
        this.isEnabled && (this.element.disabled = !0, this.isEnabled = !1)
    }, s.prototype.update = function () {
        var t = this.parent.slides;
        if (this.parent.options.wrapAround && t.length > 1)return void this.enable();
        var e = t.length ? t.length - 1 : 0, i = this.isPrevious ? 0 : e, n = this.parent.selectedIndex == i ? "disable" : "enable";
        this[n]()
    }, s.prototype.destroy = function () {
        this.deactivate()
    }, n.extend(e.defaults, {
        prevNextButtons: !0,
        arrowShape: {x0: 10, x1: 60, y1: 50, x2: 70, y2: 40, x3: 30}
    }), e.createMethods.push("_createPrevNextButtons");
    var a = e.prototype;
    return a._createPrevNextButtons = function () {
        this.options.prevNextButtons && (this.prevButton = new s((-1), this), this.nextButton = new s(1, this), this.on("activate", this.activatePrevNextButtons))
    }, a.activatePrevNextButtons = function () {
        this.prevButton.activate(), this.nextButton.activate(), this.on("deactivate", this.deactivatePrevNextButtons)
    }, a.deactivatePrevNextButtons = function () {
        this.prevButton.deactivate(), this.nextButton.deactivate(), this.off("deactivate", this.deactivatePrevNextButtons)
    }, e.PrevNextButton = s, e
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/page-dots", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function (i, n, s) {
            return e(t, i, n, s)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils)
}(window, function (t, e, i, n) {
    function s(t) {
        this.parent = t, this._create()
    }

    s.prototype = new i, s.prototype._create = function () {
        this.holder = document.createElement("ol"), this.holder.className = "flickity-page-dots", this.dots = [], this.on("tap", this.onTap), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent))
    }, s.prototype.activate = function () {
        this.setDots(), this.bindTap(this.holder), this.parent.element.appendChild(this.holder)
    }, s.prototype.deactivate = function () {
        this.parent.element.removeChild(this.holder), i.prototype.destroy.call(this)
    }, s.prototype.setDots = function () {
        var t = this.parent.slides.length - this.dots.length;
        t > 0 ? this.addDots(t) : t < 0 && this.removeDots(-t)
    }, s.prototype.addDots = function (t) {
        for (var e = document.createDocumentFragment(), i = []; t;) {
            var n = document.createElement("li");
            n.className = "dot", e.appendChild(n), i.push(n), t--
        }
        this.holder.appendChild(e), this.dots = this.dots.concat(i)
    }, s.prototype.removeDots = function (t) {
        var e = this.dots.splice(this.dots.length - t, t);
        e.forEach(function (t) {
            this.holder.removeChild(t)
        }, this)
    }, s.prototype.updateSelected = function () {
        this.selectedDot && (this.selectedDot.className = "dot"), this.dots.length && (this.selectedDot = this.dots[this.parent.selectedIndex], this.selectedDot.className = "dot is-selected")
    }, s.prototype.onTap = function (t) {
        var e = t.target;
        if ("LI" == e.nodeName) {
            this.parent.uiChange();
            var i = this.dots.indexOf(e);
            this.parent.select(i)
        }
    }, s.prototype.destroy = function () {
        this.deactivate()
    }, e.PageDots = s, n.extend(e.defaults, {pageDots: !0}), e.createMethods.push("_createPageDots");
    var o = e.prototype;
    return o._createPageDots = function () {
        this.options.pageDots && (this.pageDots = new s(this), this.on("activate", this.activatePageDots), this.on("select", this.updateSelectedPageDots), this.on("cellChange", this.updatePageDots), this.on("resize", this.updatePageDots), this.on("deactivate", this.deactivatePageDots))
    }, o.activatePageDots = function () {
        this.pageDots.activate()
    }, o.updateSelectedPageDots = function () {
        this.pageDots.updateSelected()
    }, o.updatePageDots = function () {
        this.pageDots.setDots()
    }, o.deactivatePageDots = function () {
        this.pageDots.deactivate()
    }, e.PageDots = s, e
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/player", ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], function (t, i, n) {
            return e(t, i, n)
        }) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("fizzy-ui-utils"), require("./flickity")) : e(t.EvEmitter, t.fizzyUIUtils, t.Flickity)
}(window, function (t, e, i) {
    function n(t) {
        this.parent = t, this.state = "stopped", o && (this.onVisibilityChange = function () {
            this.visibilityChange()
        }.bind(this), this.onVisibilityPlay = function () {
            this.visibilityPlay()
        }.bind(this))
    }

    var s, o;
    "hidden" in document ? (s = "hidden", o = "visibilitychange"): "webkitHidden"
    in
    document && (s = "webkitHidden", o = "webkitvisibilitychange"), n.prototype = Object.create(t.prototype), n.prototype.play = function () {
        if ("playing" != this.state) {
            var t = document[s];
            if (o && t)return void document.addEventListener(o, this.onVisibilityPlay);
            this.state = "playing", o && document.addEventListener(o, this.onVisibilityChange), this.tick()
        }
    }, n.prototype.tick = function () {
        if ("playing" == this.state) {
            var t = this.parent.options.autoPlay;
            t = "number" == typeof t ? t : 3e3;
            var e = this;
            this.clear(), this.timeout = setTimeout(function () {
                e.parent.next(!0), e.tick()
            }, t)
        }
    }, n.prototype.stop = function () {
        this.state = "stopped", this.clear(), o && document.removeEventListener(o, this.onVisibilityChange)
    }, n.prototype.clear = function () {
        clearTimeout(this.timeout)
    }, n.prototype.pause = function () {
        "playing" == this.state && (this.state = "paused", this.clear())
    }, n.prototype.unpause = function () {
        "paused" == this.state && this.play()
    }, n.prototype.visibilityChange = function () {
        var t = document[s];
        this[t ? "pause" : "unpause"]()
    }, n.prototype.visibilityPlay = function () {
        this.play(), document.removeEventListener(o, this.onVisibilityPlay)
    }, e.extend(i.defaults, {pauseAutoPlayOnHover: !0}), i.createMethods.push("_createPlayer");
    var r = i.prototype;
    return r._createPlayer = function () {
        this.player = new n(this), this.on("activate", this.activatePlayer), this.on("uiChange", this.stopPlayer), this.on("pointerDown", this.stopPlayer), this.on("deactivate", this.deactivatePlayer)
    }, r.activatePlayer = function () {
        this.options.autoPlay && (this.player.play(), this.element.addEventListener("mouseenter", this))
    }, r.playPlayer = function () {
        this.player.play()
    }, r.stopPlayer = function () {
        this.player.stop()
    }, r.pausePlayer = function () {
        this.player.pause()
    }, r.unpausePlayer = function () {
        this.player.unpause()
    }, r.deactivatePlayer = function () {
        this.player.stop(), this.element.removeEventListener("mouseenter", this)
    }, r.onmouseenter = function () {
        this.options.pauseAutoPlayOnHover && (this.player.pause(), this.element.addEventListener("mouseleave", this))
    }, r.onmouseleave = function () {
        this.player.unpause(), this.element.removeEventListener("mouseleave", this)
    }, i.Player = n, i
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/add-remove-cell", ["./flickity", "fizzy-ui-utils/utils"], function (i, n) {
            return e(t, i, n)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils)
}(window, function (t, e, i) {
    function n(t) {
        var e = document.createDocumentFragment();
        return t.forEach(function (t) {
            e.appendChild(t.element)
        }), e
    }

    var s = e.prototype;
    return s.insert = function (t, e) {
        var i = this._makeCells(t);
        if (i && i.length) {
            var s = this.cells.length;
            e = void 0 === e ? s : e;
            var o = n(i), r = e == s;
            if (r) this.slider.appendChild(o); else {
                var a = this.cells[e].element;
                this.slider.insertBefore(o, a)
            }
            if (0 === e) this.cells = i.concat(this.cells); else if (r) this.cells = this.cells.concat(i); else {
                var l = this.cells.splice(e, s - e);
                this.cells = this.cells.concat(i).concat(l)
            }
            this._sizeCells(i);
            var h = e > this.selectedIndex ? 0 : i.length;
            this._cellAddedRemoved(e, h)
        }
    }, s.append = function (t) {
        this.insert(t, this.cells.length)
    }, s.prepend = function (t) {
        this.insert(t, 0)
    }, s.remove = function (t) {
        var e, n, s = this.getCells(t), o = 0, r = s.length;
        for (e = 0; e < r; e++) {
            n = s[e];
            var a = this.cells.indexOf(n) < this.selectedIndex;
            o -= a ? 1 : 0
        }
        for (e = 0; e < r; e++)n = s[e], n.remove(), i.removeFrom(this.cells, n);
        s.length && this._cellAddedRemoved(0, o)
    }, s._cellAddedRemoved = function (t, e) {
        e = e || 0, this.selectedIndex += e, this.selectedIndex = Math.max(0, Math.min(this.slides.length - 1, this.selectedIndex)), this.cellChange(t, !0), this.emitEvent("cellAddedRemoved", [t, e])
    }, s.cellSizeChange = function (t) {
        var e = this.getCell(t);
        if (e) {
            e.getSize();
            var i = this.cells.indexOf(e);
            this.cellChange(i)
        }
    }, s.cellChange = function (t, e) {
        var i = this.slideableWidth;
        if (this._positionCells(t), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("cellChange", [t]), this.options.freeScroll) {
            var n = i - this.slideableWidth;
            this.x += n * this.cellAlign, this.positionSlider()
        } else e && this.positionSliderAtSelected(), this.select(this.selectedIndex)
    }, e
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/lazyload", ["./flickity", "fizzy-ui-utils/utils"], function (i, n) {
            return e(t, i, n)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils)
}(window, function (t, e, i) {
    "use strict";
    function n(t) {
        if ("IMG" == t.nodeName && t.getAttribute("data-flickity-lazyload"))return [t];
        var e = t.querySelectorAll("img[data-flickity-lazyload]");
        return i.makeArray(e)
    }

    function s(t, e) {
        this.img = t, this.flickity = e, this.load()
    }

    e.createMethods.push("_createLazyload");
    var o = e.prototype;
    return o._createLazyload = function () {
        this.on("select", this.lazyLoad)
    }, o.lazyLoad = function () {
        var t = this.options.lazyLoad;
        if (t) {
            var e = "number" == typeof t ? t : 0, i = this.getAdjacentCellElements(e), o = [];
            i.forEach(function (t) {
                var e = n(t);
                o = o.concat(e)
            }), o.forEach(function (t) {
                new s(t, this)
            }, this)
        }
    }, s.prototype.handleEvent = i.handleEvent, s.prototype.load = function () {
        this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.img.getAttribute("data-flickity-lazyload"), this.img.removeAttribute("data-flickity-lazyload")
    }, s.prototype.onload = function (t) {
        this.complete(t, "flickity-lazyloaded")
    }, s.prototype.onerror = function (t) {
        this.complete(t, "flickity-lazyerror")
    }, s.prototype.complete = function (t, e) {
        this.img.removeEventListener("load", this), this.img.removeEventListener("error", this);
        var i = this.flickity.getParentCell(this.img), n = i && i.element;
        this.flickity.cellSizeChange(n), this.img.classList.add(e), this.flickity.dispatchEvent("lazyLoad", t, n)
    }, e.LazyLoader = s, e
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity/js/index", ["./flickity", "./drag", "./prev-next-button", "./page-dots", "./player", "./add-remove-cell", "./lazyload"], e) : "object" == typeof module && module.exports && (module.exports = e(require("./flickity"), require("./drag"), require("./prev-next-button"), require("./page-dots"), require("./player"), require("./add-remove-cell"), require("./lazyload")))
}(window, function (t) {
    return t
}), function (t, e) {
    "function" == typeof define && define.amd ? define("flickity-as-nav-for/as-nav-for", ["flickity/js/index", "fizzy-ui-utils/utils"], e) : "object" == typeof module && module.exports ? module.exports = e(require("flickity"), require("fizzy-ui-utils")) : t.Flickity = e(t.Flickity, t.fizzyUIUtils)
}(window, function (t, e) {
    function i(t, e, i) {
        return (e - t) * i + t
    }

    t.createMethods.push("_createAsNavFor");
    var n = t.prototype;
    return n._createAsNavFor = function () {
        this.on("activate", this.activateAsNavFor), this.on("deactivate", this.deactivateAsNavFor), this.on("destroy", this.destroyAsNavFor);
        var t = this.options.asNavFor;
        if (t) {
            var e = this;
            setTimeout(function () {
                e.setNavCompanion(t)
            })
        }
    }, n.setNavCompanion = function (i) {
        i = e.getQueryElement(i);
        var n = t.data(i);
        if (n && n != this) {
            this.navCompanion = n;
            var s = this;
            this.onNavCompanionSelect = function () {
                s.navCompanionSelect()
            }, n.on("select", this.onNavCompanionSelect), this.on("staticClick", this.onNavStaticClick), this.navCompanionSelect(!0)
        }
    }, n.navCompanionSelect = function (t) {
        if (this.navCompanion) {
            var e = this.navCompanion.selectedCells[0], n = this.navCompanion.cells.indexOf(e), s = n + this.navCompanion.selectedCells.length - 1, o = Math.floor(i(n, s, this.navCompanion.cellAlign));
            if (this.selectCell(o, !1, t), this.removeNavSelectedElements(), !(o >= this.cells.length)) {
                var r = this.cells.slice(n, s + 1);
                this.navSelectedElements = r.map(function (t) {
                    return t.element
                }), this.changeNavSelectedClass("add")
            }
        }
    }, n.changeNavSelectedClass = function (t) {
        this.navSelectedElements.forEach(function (e) {
            e.classList[t]("is-nav-selected")
        })
    }, n.activateAsNavFor = function () {
        this.navCompanionSelect(!0)
    }, n.removeNavSelectedElements = function () {
        this.navSelectedElements && (this.changeNavSelectedClass("remove"), delete this.navSelectedElements)
    }, n.onNavStaticClick = function (t, e, i, n) {
        "number" == typeof n && this.navCompanion.selectCell(n)
    }, n.deactivateAsNavFor = function () {
        this.removeNavSelectedElements()
    }, n.destroyAsNavFor = function () {
        this.navCompanion && (this.navCompanion.off("select", this.onNavCompanionSelect), this.off("staticClick", this.onNavStaticClick), delete this.navCompanion)
    }, t
}), function (t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("imagesloaded/imagesloaded", ["ev-emitter/ev-emitter"], function (i) {
            return e(t, i)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter)
}(window, function (t, e) {
    function i(t, e) {
        for (var i in e)t[i] = e[i];
        return t
    }

    function n(t) {
        var e = [];
        if (Array.isArray(t)) e = t; else if ("number" == typeof t.length)for (var i = 0; i < t.length; i++)e.push(t[i]); else e.push(t);
        return e
    }

    function s(t, e, o) {
        return this instanceof s ? ("string" == typeof t && (t = document.querySelectorAll(t)), this.elements = n(t), this.options = i({}, this.options), "function" == typeof e ? o = e : i(this.options, e), o && this.on("always", o), this.getImages(), a && (this.jqDeferred = new a.Deferred), void setTimeout(function () {
                this.check()
            }.bind(this))) : new s(t, e, o)
    }

    function o(t) {
        this.img = t
    }

    function r(t, e) {
        this.url = t, this.element = e, this.img = new Image
    }

    var a = t.jQuery, l = t.console;
    s.prototype = Object.create(e.prototype), s.prototype.options = {}, s.prototype.getImages = function () {
        this.images = [], this.elements.forEach(this.addElementImages, this)
    }, s.prototype.addElementImages = function (t) {
        "IMG" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t);
        var e = t.nodeType;
        if (e && h[e]) {
            for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) {
                var s = i[n];
                this.addImage(s)
            }
            if ("string" == typeof this.options.background) {
                var o = t.querySelectorAll(this.options.background);
                for (n = 0; n < o.length; n++) {
                    var r = o[n];
                    this.addElementBackgroundImages(r)
                }
            }
        }
    };
    var h = {1: !0, 9: !0, 11: !0};
    return s.prototype.addElementBackgroundImages = function (t) {
        var e = getComputedStyle(t);
        if (e)for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) {
            var s = n && n[2];
            s && this.addBackground(s, t), n = i.exec(e.backgroundImage)
        }
    }, s.prototype.addImage = function (t) {
        var e = new o(t);
        this.images.push(e)
    }, s.prototype.addBackground = function (t, e) {
        var i = new r(t, e);
        this.images.push(i)
    }, s.prototype.check = function () {
        function t(t, i, n) {
            setTimeout(function () {
                e.progress(t, i, n)
            })
        }

        var e = this;
        return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (e) {
                e.once("progress", t), e.check()
            }) : void this.complete()
    }, s.prototype.progress = function (t, e, i) {
        this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount == this.images.length && this.complete(), this.options.debug && l && l.log("progress: " + i, t, e)
    }, s.prototype.complete = function () {
        var t = this.hasAnyBroken ? "fail" : "done";
        if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
            var e = this.hasAnyBroken ? "reject" : "resolve";
            this.jqDeferred[e](this)
        }
    }, o.prototype = Object.create(e.prototype), o.prototype.check = function () {
        var t = this.getIsImageComplete();
        return t ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void(this.proxyImage.src = this.img.src))
    }, o.prototype.getIsImageComplete = function () {
        return this.img.complete && void 0 !== this.img.naturalWidth
    }, o.prototype.confirm = function (t, e) {
        this.isLoaded = t, this.emitEvent("progress", [this, this.img, e])
    }, o.prototype.handleEvent = function (t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, o.prototype.onload = function () {
        this.confirm(!0, "onload"), this.unbindEvents()
    }, o.prototype.onerror = function () {
        this.confirm(!1, "onerror"), this.unbindEvents()
    }, o.prototype.unbindEvents = function () {
        this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
    }, r.prototype = Object.create(o.prototype), r.prototype.check = function () {
        this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url;
        var t = this.getIsImageComplete();
        t && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
    }, r.prototype.unbindEvents = function () {
        this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
    }, r.prototype.confirm = function (t, e) {
        this.isLoaded = t, this.emitEvent("progress", [this, this.element, e])
    }, s.makeJQueryPlugin = function (e) {
        e = e || t.jQuery, e && (a = e, a.fn.imagesLoaded = function (t, e) {
            var i = new s(this, t, e);
            return i.jqDeferred.promise(a(this))
        })
    }, s.makeJQueryPlugin(), s
}), function (t, e) {
    "function" == typeof define && define.amd ? define(["flickity/js/index", "imagesloaded/imagesloaded"], function (i, n) {
            return e(t, i, n)
        }) : "object" == typeof module && module.exports ? module.exports = e(t, require("flickity"), require("imagesloaded")) : t.Flickity = e(t, t.Flickity, t.imagesLoaded)
}(window, function (t, e, i) {
    "use strict";
    e.createMethods.push("_createImagesLoaded");
    var n = e.prototype;
    return n._createImagesLoaded = function () {
        this.on("activate", this.imagesLoaded)
    }, n.imagesLoaded = function () {
        function t(t, i) {
            var n = e.getParentCell(i.img);
            e.cellSizeChange(n && n.element), e.options.freeScroll || e.positionSliderAtSelected()
        }

        if (this.options.imagesLoaded) {
            var e = this;
            i(this.slider).on("progress", t)
        }
    }, e
});
!function t(e, n, i) {
    function o(s, a) {
        if (!n[s]) {
            if (!e[s]) {
                var l = "function" == typeof require && require;
                if (!a && l)return l(s, !0);
                if (r)return r(s, !0);
                var u = new Error("Cannot find module '" + s + "'");
                throw u.code = "MODULE_NOT_FOUND", u
            }
            var c = n[s] = {exports: {}};
            e[s][0].call(c.exports, function (t) {
                var n = e[s][1][t];
                return o(n ? n : t)
            }, c, c.exports, t, e, n, i)
        }
        return n[s].exports
    }

    for (var r = "function" == typeof require && require, s = 0; s < i.length; s++)o(i[s]);
    return o
}({
    1: [function (t, e, n) {
        (function () {
            "use strict";
            var t = this, n = t.Chart, i = function (t) {
                this.canvas = t.canvas, this.ctx = t;
                var e = function (t, e) {
                    return t["offset" + e] ? t["offset" + e] : document.defaultView.getComputedStyle(t).getPropertyValue(e)
                };
                this.width = e(t.canvas, "Width") || t.canvas.width, this.height = e(t.canvas, "Height") || t.canvas.height;
                return this.aspectRatio = this.width / this.height, o.retinaScale(this), this
            };
            i.defaults = {
                global: {
                    animation: !0,
                    animationSteps: 60,
                    animationEasing: "easeOutQuart",
                    showScale: !0,
                    scaleOverride: !1,
                    scaleSteps: null,
                    scaleStepWidth: null,
                    scaleStartValue: null,
                    scaleLineColor: "rgba(0,0,0,.1)",
                    scaleLineWidth: 1,
                    scaleShowLabels: !0,
                    scaleLabel: "<%=value%>",
                    scaleIntegersOnly: !0,
                    scaleBeginAtZero: !1,
                    scaleFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
                    scaleFontSize: 12,
                    scaleFontStyle: "normal",
                    scaleFontColor: "#666",
                    responsive: !1,
                    maintainAspectRatio: !0,
                    showTooltips: !0,
                    customTooltips: !1,
                    tooltipEvents: ["mousemove", "touchstart", "touchmove", "mouseout"],
                    tooltipFillColor: "rgba(0,0,0,0.8)",
                    tooltipFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
                    tooltipFontSize: 14,
                    tooltipFontStyle: "normal",
                    tooltipFontColor: "#fff",
                    tooltipTitleFontFamily: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",
                    tooltipTitleFontSize: 14,
                    tooltipTitleFontStyle: "bold",
                    tooltipTitleFontColor: "#fff",
                    tooltipTitleTemplate: "<%= label%>",
                    tooltipYPadding: 6,
                    tooltipXPadding: 6,
                    tooltipCaretSize: 8,
                    tooltipCornerRadius: 6,
                    tooltipXOffset: 10,
                    tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>",
                    multiTooltipTemplate: "<%= datasetLabel %>: <%= value %>",
                    multiTooltipKeyBackground: "#fff",
                    segmentColorDefault: ["#A6CEE3", "#1F78B4", "#B2DF8A", "#33A02C", "#FB9A99", "#E31A1C", "#FDBF6F", "#FF7F00", "#CAB2D6", "#6A3D9A", "#B4B482", "#B15928"],
                    segmentHighlightColorDefaults: ["#CEF6FF", "#47A0DC", "#DAFFB2", "#5BC854", "#FFC2C1", "#FF4244", "#FFE797", "#FFA728", "#F2DAFE", "#9265C2", "#DCDCAA", "#D98150"],
                    onAnimationProgress: function () {
                    },
                    onAnimationComplete: function () {
                    }
                }
            }, i.types = {};
            var o = i.helpers = {}, r = o.each = function (t, e, n) {
                var i = Array.prototype.slice.call(arguments, 3);
                if (t)if (t.length === +t.length) {
                    var o;
                    for (o = 0; o < t.length; o++)e.apply(n, [t[o], o].concat(i))
                } else for (var r in t)e.apply(n, [t[r], r].concat(i))
            }, s = o.clone = function (t) {
                var e = {};
                return r(t, function (n, i) {
                    t.hasOwnProperty(i) && (e[i] = n)
                }), e
            }, a = o.extend = function (t) {
                return r(Array.prototype.slice.call(arguments, 1), function (e) {
                    r(e, function (n, i) {
                        e.hasOwnProperty(i) && (t[i] = n)
                    })
                }), t
            }, l = o.merge = function (t, e) {
                var n = Array.prototype.slice.call(arguments, 0);
                return n.unshift({}), a.apply(null, n)
            }, u = o.indexOf = function (t, e) {
                if (Array.prototype.indexOf)return t.indexOf(e);
                for (var n = 0; n < t.length; n++)if (t[n] === e)return n;
                return -1
            }, c = (o.where = function (t, e) {
                var n = [];
                return o.each(t, function (t) {
                    e(t) && n.push(t)
                }), n
            }, o.findNextWhere = function (t, e, n) {
                n || (n = -1);
                for (var i = n + 1; i < t.length; i++) {
                    var o = t[i];
                    if (e(o))return o
                }
            }, o.findPreviousWhere = function (t, e, n) {
                n || (n = t.length);
                for (var i = n - 1; i >= 0; i--) {
                    var o = t[i];
                    if (e(o))return o
                }
            }, o.inherits = function (t) {
                var e = this, n = t && t.hasOwnProperty("constructor") ? t.constructor : function () {
                        return e.apply(this, arguments)
                    }, i = function () {
                    this.constructor = n
                };
                return i.prototype = e.prototype, n.prototype = new i, n.extend = c, t && a(n.prototype, t), n.__super__ = e.prototype, n
            }), h = o.noop = function () {
            }, f = o.uid = function () {
                var t = 0;
                return function () {
                    return "chart-" + t++
                }
            }(), d = o.warn = function (t) {
                window.console && "function" == typeof window.console.warn
            }, p = o.amd = "function" == typeof define && define.amd, y = o.isNumber = function (t) {
                return !isNaN(parseFloat(t)) && isFinite(t)
            }, v = o.max = function (t) {
                return Math.max.apply(Math, t)
            }, m = o.min = function (t) {
                return Math.min.apply(Math, t)
            }, g = (o.cap = function (t, e, n) {
                if (y(e)) {
                    if (t > e)return e
                } else if (y(n) && t < n)return n;
                return t
            }, o.getDecimalPlaces = function (t) {
                if (t % 1 !== 0 && y(t)) {
                    var e = t.toString();
                    if (e.indexOf("e-") < 0)return e.split(".")[1].length;
                    if (e.indexOf(".") < 0)return parseInt(e.split("e-")[1]);
                    var n = e.split(".")[1].split("e-");
                    return n[0].length + parseInt(n[1])
                }
                return 0
            }), b = o.radians = function (t) {
                return t * (Math.PI / 180)
            }, _ = (o.getAngleFromPoint = function (t, e) {
                var n = e.x - t.x, i = e.y - t.y, o = Math.sqrt(n * n + i * i), r = 2 * Math.PI + Math.atan2(i, n);
                return n < 0 && i < 0 && (r += 2 * Math.PI), {angle: r, distance: o}
            }, o.aliasPixel = function (t) {
                return t % 2 === 0 ? 0 : .5
            }), w = (o.splineCurve = function (t, e, n, i) {
                var o = Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)), r = Math.sqrt(Math.pow(n.x - e.x, 2) + Math.pow(n.y - e.y, 2)), s = i * o / (o + r), a = i * r / (o + r);
                return {
                    inner: {x: e.x - s * (n.x - t.x), y: e.y - s * (n.y - t.y)},
                    outer: {x: e.x + a * (n.x - t.x), y: e.y + a * (n.y - t.y)}
                }
            }, o.calculateOrderOfMagnitude = function (t) {
                return Math.floor(Math.log(t) / Math.LN10)
            }), k = (o.calculateScaleRange = function (t, e, n, i, o) {
                var s = 2, a = Math.floor(e / (1.5 * n)), l = s >= a, u = [];
                r(t, function (t) {
                    null == t || u.push(t)
                });
                var c = m(u), h = v(u);
                h === c && (h += .5, c >= .5 && !i ? c -= .5 : h += .5);
                for (var f = Math.abs(h - c), d = w(f), p = Math.ceil(h / (1 * Math.pow(10, d))) * Math.pow(10, d), y = i ? 0 : Math.floor(c / (1 * Math.pow(10, d))) * Math.pow(10, d), g = p - y, b = Math.pow(10, d), _ = Math.round(g / b); (_ > a || 2 * _ < a) && !l;)if (_ > a) b *= 2, _ = Math.round(g / b), _ % 1 !== 0 && (l = !0); else if (o && d >= 0) {
                    if (b / 2 % 1 !== 0)break;
                    b /= 2, _ = Math.round(g / b)
                } else b /= 2, _ = Math.round(g / b);
                return l && (_ = s, b = g / _), {steps: _, stepValue: b, min: y, max: y + _ * b}
            }, o.template = function (t, e) {
                function n(t, e) {
                    var n = /\W/.test(t) ? new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + t.replace(/[\r\t\n]/g, " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, "',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');") : i[t] = i[t];
                    return e ? n(e) : n
                }

                if (t instanceof Function)return t(e);
                var i = {};
                return n(t, e)
            }), C = (o.generateLabels = function (t, e, n, i) {
                var o = new Array(e);
                return t && r(o, function (e, r) {
                    o[r] = k(t, {value: n + i * (r + 1)})
                }), o
            }, o.easingEffects = {
                linear: function (t) {
                    return t
                }, easeInQuad: function (t) {
                    return t * t
                }, easeOutQuad: function (t) {
                    return -1 * t * (t - 2)
                }, easeInOutQuad: function (t) {
                    return (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1)
                }, easeInCubic: function (t) {
                    return t * t * t
                }, easeOutCubic: function (t) {
                    return 1 * ((t = t / 1 - 1) * t * t + 1)
                }, easeInOutCubic: function (t) {
                    return (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2)
                }, easeInQuart: function (t) {
                    return t * t * t * t
                }, easeOutQuart: function (t) {
                    return -1 * ((t = t / 1 - 1) * t * t * t - 1)
                }, easeInOutQuart: function (t) {
                    return (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2)
                }, easeInQuint: function (t) {
                    return 1 * (t /= 1) * t * t * t * t
                }, easeOutQuint: function (t) {
                    return 1 * ((t = t / 1 - 1) * t * t * t * t + 1)
                }, easeInOutQuint: function (t) {
                    return (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2)
                }, easeInSine: function (t) {
                    return -1 * Math.cos(t / 1 * (Math.PI / 2)) + 1
                }, easeOutSine: function (t) {
                    return 1 * Math.sin(t / 1 * (Math.PI / 2))
                }, easeInOutSine: function (t) {
                    return -.5 * (Math.cos(Math.PI * t / 1) - 1)
                }, easeInExpo: function (t) {
                    return 0 === t ? 1 : 1 * Math.pow(2, 10 * (t / 1 - 1))
                }, easeOutExpo: function (t) {
                    return 1 === t ? 1 : 1 * (-Math.pow(2, -10 * t / 1) + 1)
                }, easeInOutExpo: function (t) {
                    return 0 === t ? 0 : 1 === t ? 1 : (t /= .5) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (-Math.pow(2, -10 * --t) + 2)
                }, easeInCirc: function (t) {
                    return t >= 1 ? t : -1 * (Math.sqrt(1 - (t /= 1) * t) - 1)
                }, easeOutCirc: function (t) {
                    return 1 * Math.sqrt(1 - (t = t / 1 - 1) * t)
                }, easeInOutCirc: function (t) {
                    return (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1)
                }, easeInElastic: function (t) {
                    var e = 1.70158, n = 0, i = 1;
                    return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (n || (n = .3), i < Math.abs(1) ? (i = 1, e = n / 4): e= n / (2 * Math.PI) * Math.asin(1 / i), -(i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n)))
                }, easeOutElastic: function (t) {
                    var e = 1.70158, n = 0, i = 1;
                    return 0 === t ? 0 : 1 == (t /= 1) ? 1 : (n || (n = .3), i < Math.abs(1) ? (i = 1, e = n / 4): e= n / (2 * Math.PI) * Math.asin(1 / i), i * Math.pow(2, -10 * t) * Math.sin((1 * t - e) * (2 * Math.PI) / n) + 1)
                }, easeInOutElastic: function (t) {
                    var e = 1.70158, n = 0, i = 1;
                    return 0 === t ? 0 : 2 == (t /= .5) ? 1 : (n || (n = 1 * (.3 * 1.5)), i < Math.abs(1) ? (i = 1, e = n / 4): e= n / (2 * Math.PI) * Math.asin(1 / i), t < 1 ? -.5 * (i * Math.pow(2, 10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n)) : i * Math.pow(2, -10 * (t -= 1)) * Math.sin((1 * t - e) * (2 * Math.PI) / n) * .5 + 1)
                }, easeInBack: function (t) {
                    var e = 1.70158;
                    return 1 * (t /= 1) * t * ((e + 1) * t - e)
                }, easeOutBack: function (t) {
                    var e = 1.70158;
                    return 1 * ((t = t / 1 - 1) * t * ((e + 1) * t + e) + 1)
                }, easeInOutBack: function (t) {
                    var e = 1.70158;
                    return (t /= .5) < 1 ? .5 * (t * t * (((e *= 1.525) + 1) * t - e)) : .5 * ((t -= 2) * t * (((e *= 1.525) + 1) * t + e) + 2)
                }, easeInBounce: function (t) {
                    return 1 - C.easeOutBounce(1 - t)
                }, easeOutBounce: function (t) {
                    return (t /= 1) < 1 / 2.75 ? 1 * (7.5625 * t * t) : t < 2 / 2.75 ? 1 * (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 1 * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 * (7.5625 * (t -= 2.625 / 2.75) * t + .984375)
                }, easeInOutBounce: function (t) {
                    return t < .5 ? .5 * C.easeInBounce(2 * t) : .5 * C.easeOutBounce(2 * t - 1) + .5
                }
            }), j = o.requestAnimFrame = function () {
                return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (t) {
                        return window.setTimeout(t, 1e3 / 60)
                    }
            }(), T = (o.cancelAnimFrame = function () {
                return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame || function (t) {
                        return window.clearTimeout(t, 1e3 / 60)
                    }
            }(), o.animationLoop = function (t, e, n, i, o, r) {
                var s = 0, a = C[n] || C.linear, l = function () {
                    s++;
                    var n = s / e, u = a(n);
                    t.call(r, u, n, s), i.call(r, u, n), s < e ? r.animationFrame = j(l) : o.apply(r)
                };
                j(l)
            }, o.getRelativePosition = function (t) {
                var e, n, i = t.originalEvent || t, o = t.currentTarget || t.srcElement, r = o.getBoundingClientRect();
                return i.touches ? (e = i.touches[0].clientX - r.left, n = i.touches[0].clientY - r.top) : (e = i.clientX - r.left, n = i.clientY - r.top), {
                    x: e,
                    y: n
                }
            }, o.addEvent = function (t, e, n) {
                t.addEventListener ? t.addEventListener(e, n) : t.attachEvent ? t.attachEvent("on" + e, n) : t["on" + e] = n
            }), S = o.removeEvent = function (t, e, n) {
                t.removeEventListener ? t.removeEventListener(e, n, !1) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = h
            }, x = (o.bindEvents = function (t, e, n) {
                t.events || (t.events = {}), r(e, function (e) {
                    t.events[e] = function () {
                        n.apply(t, arguments)
                    }, T(t.chart.canvas, e, t.events[e])
                })
            }, o.unbindEvents = function (t, e) {
                r(e, function (e, n) {
                    S(t.chart.canvas, n, e)
                })
            }), O = o.getMaximumWidth = function (t) {
                var e = t.parentNode, n = parseInt(P(e, "padding-left")) + parseInt(P(e, "padding-right"));
                return e ? e.clientWidth - n : 0
            }, E = o.getMaximumHeight = function (t) {
                var e = t.parentNode, n = parseInt(P(e, "padding-bottom")) + parseInt(P(e, "padding-top"));
                return e ? e.clientHeight - n : 0
            }, P = o.getStyle = function (t, e) {
                return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e)
            }, M = (o.getMaximumSize = o.getMaximumWidth, o.retinaScale = function (t) {
                var e = t.ctx, n = t.canvas.width, i = t.canvas.height;
                window.devicePixelRatio && (e.canvas.style.width = n + "px", e.canvas.style.height = i + "px", e.canvas.height = i * window.devicePixelRatio, e.canvas.width = n * window.devicePixelRatio, e.scale(window.devicePixelRatio, window.devicePixelRatio))
            }), A = o.clear = function (t) {
                t.ctx.clearRect(0, 0, t.width, t.height)
            }, L = o.fontString = function (t, e, n) {
                return e + " " + t + "px " + n
            }, D = o.longestText = function (t, e, n) {
                t.font = e;
                var i = 0;
                return r(n, function (e) {
                    var n = t.measureText(e).width;
                    i = n > i ? n : i
                }), i
            }, F = o.drawRoundedRectangle = function (t, e, n, i, o, r) {
                t.beginPath(), t.moveTo(e + r, n), t.lineTo(e + i - r, n), t.quadraticCurveTo(e + i, n, e + i, n + r), t.lineTo(e + i, n + o - r), t.quadraticCurveTo(e + i, n + o, e + i - r, n + o), t.lineTo(e + r, n + o), t.quadraticCurveTo(e, n + o, e, n + o - r), t.lineTo(e, n + r), t.quadraticCurveTo(e, n, e + r, n), t.closePath()
            };
            i.instances = {}, i.Type = function (t, e, n) {
                this.options = e, this.chart = n, this.id = f(), i.instances[this.id] = this, e.responsive && this.resize(), this.initialize.call(this, t)
            }, a(i.Type.prototype, {
                initialize: function () {
                    return this
                }, clear: function () {
                    return A(this.chart), this
                }, stop: function () {
                    return i.animationService.cancelAnimation(this), this
                }, resize: function (t) {
                    this.stop();
                    var e = this.chart.canvas, n = O(this.chart.canvas), i = this.options.maintainAspectRatio ? n / this.chart.aspectRatio : E(this.chart.canvas);
                    return e.width = this.chart.width = n, e.height = this.chart.height = i, M(this.chart), "function" == typeof t && t.apply(this, Array.prototype.slice.call(arguments, 1)), this
                }, reflow: h, render: function (t) {
                    if (t && this.reflow(), this.options.animation && !t) {
                        var e = new i.Animation;
                        e.numSteps = this.options.animationSteps, e.easing = this.options.animationEasing, e.render = function (t, e) {
                            var n = o.easingEffects[e.easing], i = e.currentStep / e.numSteps, r = n(i);
                            t.draw(r, i, e.currentStep)
                        }, e.onAnimationProgress = this.options.onAnimationProgress, e.onAnimationComplete = this.options.onAnimationComplete, i.animationService.addAnimation(this, e)
                    } else this.draw(), this.options.onAnimationComplete.call(this);
                    return this
                }, generateLegend: function () {
                    return o.template(this.options.legendTemplate, this)
                }, destroy: function () {
                    this.stop(), this.clear(), x(this, this.events);
                    var t = this.chart.canvas;
                    t.width = this.chart.width, t.height = this.chart.height, t.style.removeProperty ? (t.style.removeProperty("width"), t.style.removeProperty("height")) : (t.style.removeAttribute("width"), t.style.removeAttribute("height")), delete i.instances[this.id]
                }, showTooltip: function (t, e) {
                    "undefined" == typeof this.activeElements && (this.activeElements = []);
                    var n = function (t) {
                        var e = !1;
                        return t.length !== this.activeElements.length ? e = !0 : (r(t, function (t, n) {
                                t !== this.activeElements[n] && (e = !0)
                            }, this), e)
                    }.call(this, t);
                    if (n || e) {
                        if (this.activeElements = t, this.draw(), this.options.customTooltips && this.options.customTooltips(!1), t.length > 0)if (this.datasets && this.datasets.length > 1) {
                            for (var s, a, l = this.datasets.length - 1; l >= 0 && (s = this.datasets[l].points || this.datasets[l].bars || this.datasets[l].segments, a = u(s, t[0]), a === -1); l--);
                            var c = [], h = [], f = function (t) {
                                var e, n, i, r, s, l = [], u = [], f = [];
                                return o.each(this.datasets, function (t) {
                                    e = t.points || t.bars || t.segments, e[a] && e[a].hasValue() && l.push(e[a])
                                }), o.each(l, function (t) {
                                    u.push(t.x), f.push(t.y), c.push(o.template(this.options.multiTooltipTemplate, t)), h.push({
                                        fill: t._saved.fillColor || t.fillColor,
                                        stroke: t._saved.strokeColor || t.strokeColor
                                    })
                                }, this), s = m(f), i = v(f), r = m(u), n = v(u), {
                                    x: r > this.chart.width / 2 ? r : n,
                                    y: (s + i) / 2
                                }
                            }.call(this, a);
                            new i.MultiTooltip({
                                x: f.x,
                                y: f.y,
                                xPadding: this.options.tooltipXPadding,
                                yPadding: this.options.tooltipYPadding,
                                xOffset: this.options.tooltipXOffset,
                                fillColor: this.options.tooltipFillColor,
                                textColor: this.options.tooltipFontColor,
                                fontFamily: this.options.tooltipFontFamily,
                                fontStyle: this.options.tooltipFontStyle,
                                fontSize: this.options.tooltipFontSize,
                                titleTextColor: this.options.tooltipTitleFontColor,
                                titleFontFamily: this.options.tooltipTitleFontFamily,
                                titleFontStyle: this.options.tooltipTitleFontStyle,
                                titleFontSize: this.options.tooltipTitleFontSize,
                                cornerRadius: this.options.tooltipCornerRadius,
                                labels: c,
                                legendColors: h,
                                legendColorBackground: this.options.multiTooltipKeyBackground,
                                title: k(this.options.tooltipTitleTemplate, t[0]),
                                chart: this.chart,
                                ctx: this.chart.ctx,
                                custom: this.options.customTooltips
                            }).draw()
                        } else r(t, function (t) {
                            var e = t.tooltipPosition();
                            new i.Tooltip({
                                x: Math.round(e.x),
                                y: Math.round(e.y),
                                xPadding: this.options.tooltipXPadding,
                                yPadding: this.options.tooltipYPadding,
                                fillColor: this.options.tooltipFillColor,
                                textColor: this.options.tooltipFontColor,
                                fontFamily: this.options.tooltipFontFamily,
                                fontStyle: this.options.tooltipFontStyle,
                                fontSize: this.options.tooltipFontSize,
                                caretHeight: this.options.tooltipCaretSize,
                                cornerRadius: this.options.tooltipCornerRadius,
                                text: k(this.options.tooltipTemplate, t),
                                chart: this.chart,
                                custom: this.options.customTooltips
                            }).draw()
                        }, this);
                        return this
                    }
                }, toBase64Image: function () {
                    return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments)
                }
            }), i.Type.extend = function (t) {
                var e = this, n = function () {
                    return e.apply(this, arguments)
                };
                if (n.prototype = s(e.prototype), a(n.prototype, t), n.extend = i.Type.extend, t.name || e.prototype.name) {
                    var o = t.name || e.prototype.name, r = i.defaults[e.prototype.name] ? s(i.defaults[e.prototype.name]) : {};
                    i.defaults[o] = a(r, t.defaults), i.types[o] = n, i.prototype[o] = function (t, e) {
                        var r = l(i.defaults.global, i.defaults[o], e || {});
                        return new n(t, r, this)
                    }
                } else d("Name not provided for this chart, so it hasn't been registered");
                return e
            }, i.Element = function (t) {
                a(this, t), this.initialize.apply(this, arguments), this.save()
            }, a(i.Element.prototype, {
                initialize: function () {
                }, restore: function (t) {
                    return t ? r(t, function (t) {
                            this[t] = this._saved[t]
                        }, this) : a(this, this._saved), this
                }, save: function () {
                    return this._saved = s(this), delete this._saved._saved, this
                }, update: function (t) {
                    return r(t, function (t, e) {
                        this._saved[e] = this[e], this[e] = t
                    }, this), this
                }, transition: function (t, e) {
                    return r(t, function (t, n) {
                        this[n] = (t - this._saved[n]) * e + this._saved[n]
                    }, this), this
                }, tooltipPosition: function () {
                    return {x: this.x, y: this.y}
                }, hasValue: function () {
                    return y(this.value)
                }
            }), i.Element.extend = c, i.Point = i.Element.extend({
                display: !0, inRange: function (t, e) {
                    var n = this.hitDetectionRadius + this.radius;
                    return Math.pow(t - this.x, 2) + Math.pow(e - this.y, 2) < Math.pow(n, 2)
                }, draw: function () {
                    if (this.display) {
                        var t = this.ctx;
                        t.beginPath(), t.arc(this.x, this.y, this.radius, 0, 2 * Math.PI), t.closePath(), t.strokeStyle = this.strokeColor, t.lineWidth = this.strokeWidth, t.fillStyle = this.fillColor, t.fill(), t.stroke()
                    }
                }
            }), i.Arc = i.Element.extend({
                inRange: function (t, e) {
                    var n = o.getAngleFromPoint(this, {
                        x: t,
                        y: e
                    }), i = n.angle % (2 * Math.PI), r = (2 * Math.PI + this.startAngle) % (2 * Math.PI), s = (2 * Math.PI + this.endAngle) % (2 * Math.PI) || 360, a = s < r ? i <= s || i >= r : i >= r && i <= s, l = n.distance >= this.innerRadius && n.distance <= this.outerRadius;
                    return a && l
                }, tooltipPosition: function () {
                    var t = this.startAngle + (this.endAngle - this.startAngle) / 2, e = (this.outerRadius - this.innerRadius) / 2 + this.innerRadius;
                    return {x: this.x + Math.cos(t) * e, y: this.y + Math.sin(t) * e}
                }, draw: function (t) {
                    var e = this.ctx;
                    e.beginPath(), e.arc(this.x, this.y, this.outerRadius < 0 ? 0 : this.outerRadius, this.startAngle, this.endAngle), e.arc(this.x, this.y, this.innerRadius < 0 ? 0 : this.innerRadius, this.endAngle, this.startAngle, !0), e.closePath(), e.strokeStyle = this.strokeColor, e.lineWidth = this.strokeWidth, e.fillStyle = this.fillColor, e.fill(), e.lineJoin = "bevel", this.showStroke && e.stroke()
                }
            }), i.Rectangle = i.Element.extend({
                draw: function () {
                    var t = this.ctx, e = this.width / 2, n = this.x - e, i = this.x + e, o = this.base - (this.base - this.y), r = this.strokeWidth / 2;
                    this.showStroke && (n += r, i -= r, o += r), t.beginPath(), t.fillStyle = this.fillColor, t.strokeStyle = this.strokeColor, t.lineWidth = this.strokeWidth, t.moveTo(n, this.base), t.lineTo(n, o), t.lineTo(i, o), t.lineTo(i, this.base), t.fill(), this.showStroke && t.stroke()
                }, height: function () {
                    return this.base - this.y
                }, inRange: function (t, e) {
                    return t >= this.x - this.width / 2 && t <= this.x + this.width / 2 && e >= this.y && e <= this.base
                }
            }), i.Animation = i.Element.extend({
                currentStep: null,
                numSteps: 60,
                easing: "",
                render: null,
                onAnimationProgress: null,
                onAnimationComplete: null
            }), i.Tooltip = i.Element.extend({
                draw: function () {
                    var t = this.chart.ctx;
                    t.font = L(this.fontSize, this.fontStyle, this.fontFamily), this.xAlign = "center", this.yAlign = "above";
                    var e = this.caretPadding = 2, n = t.measureText(this.text).width + 2 * this.xPadding, i = this.fontSize + 2 * this.yPadding, o = i + this.caretHeight + e;
                    this.x + n / 2 > this.chart.width ? this.xAlign = "left" : this.x - n / 2 < 0 && (this.xAlign = "right"), this.y - o < 0 && (this.yAlign = "below");
                    var r = this.x - n / 2, s = this.y - o;
                    if (t.fillStyle = this.fillColor, this.custom) this.custom(this); else {
                        switch (this.yAlign) {
                            case"above":
                                t.beginPath(), t.moveTo(this.x, this.y - e), t.lineTo(this.x + this.caretHeight, this.y - (e + this.caretHeight)), t.lineTo(this.x - this.caretHeight, this.y - (e + this.caretHeight)), t.closePath(), t.fill();
                                break;
                            case"below":
                                s = this.y + e + this.caretHeight, t.beginPath(), t.moveTo(this.x, this.y + e), t.lineTo(this.x + this.caretHeight, this.y + e + this.caretHeight), t.lineTo(this.x - this.caretHeight, this.y + e + this.caretHeight), t.closePath(), t.fill()
                        }
                        switch (this.xAlign) {
                            case"left":
                                r = this.x - n + (this.cornerRadius + this.caretHeight);
                                break;
                            case"right":
                                r = this.x - (this.cornerRadius + this.caretHeight)
                        }
                        F(t, r, s, n, i, this.cornerRadius), t.fill(), t.fillStyle = this.textColor, t.textAlign = "center", t.textBaseline = "middle", t.fillText(this.text, r + n / 2, s + i / 2)
                    }
                }
            }), i.MultiTooltip = i.Element.extend({
                initialize: function () {
                    this.font = L(this.fontSize, this.fontStyle, this.fontFamily), this.titleFont = L(this.titleFontSize, this.titleFontStyle, this.titleFontFamily), this.titleHeight = this.title ? 1.5 * this.titleFontSize : 0, this.height = this.labels.length * this.fontSize + (this.labels.length - 1) * (this.fontSize / 2) + 2 * this.yPadding + this.titleHeight, this.ctx.font = this.titleFont;
                    var t = this.ctx.measureText(this.title).width, e = D(this.ctx, this.font, this.labels) + this.fontSize + 3, n = v([e, t]);
                    this.width = n + 2 * this.xPadding;
                    var i = this.height / 2;
                    this.y - i < 0 ? this.y = i : this.y + i > this.chart.height && (this.y = this.chart.height - i), this.x > this.chart.width / 2 ? this.x -= this.xOffset + this.width : this.x += this.xOffset
                }, getLineHeight: function (t) {
                    var e = this.y - this.height / 2 + this.yPadding, n = t - 1;
                    return 0 === t ? e + this.titleHeight / 3 : e + (1.5 * this.fontSize * n + this.fontSize / 2) + this.titleHeight
                }, draw: function () {
                    if (this.custom) this.custom(this); else {
                        F(this.ctx, this.x, this.y - this.height / 2, this.width, this.height, this.cornerRadius);
                        var t = this.ctx;
                        t.fillStyle = this.fillColor, t.fill(), t.closePath(), t.textAlign = "left", t.textBaseline = "middle", t.fillStyle = this.titleTextColor, t.font = this.titleFont, t.fillText(this.title, this.x + this.xPadding, this.getLineHeight(0)), t.font = this.font, o.each(this.labels, function (e, n) {
                            t.fillStyle = this.textColor, t.fillText(e, this.x + this.xPadding + this.fontSize + 3, this.getLineHeight(n + 1)), t.fillStyle = this.legendColorBackground, t.fillRect(this.x + this.xPadding, this.getLineHeight(n + 1) - this.fontSize / 2, this.fontSize, this.fontSize), t.fillStyle = this.legendColors[n].fill, t.fillRect(this.x + this.xPadding, this.getLineHeight(n + 1) - this.fontSize / 2, this.fontSize, this.fontSize)
                        }, this)
                    }
                }
            }), i.Scale = i.Element.extend({
                initialize: function () {
                    this.fit()
                }, buildYLabels: function () {
                    this.yLabels = [];
                    for (var t = g(this.stepValue), e = 0; e <= this.steps; e++)this.yLabels.push(k(this.templateString, {value: (this.min + e * this.stepValue).toFixed(t)}));
                    this.yLabelWidth = this.display && this.showLabels ? D(this.ctx, this.font, this.yLabels) + 10 : 0
                }, addXLabel: function (t) {
                    this.xLabels.push(t), this.valuesCount++, this.fit()
                }, removeXLabel: function () {
                    this.xLabels.shift(), this.valuesCount--, this.fit()
                }, fit: function () {
                    this.startPoint = this.display ? this.fontSize : 0, this.endPoint = this.display ? this.height - 1.5 * this.fontSize - 5 : this.height, this.startPoint += this.padding, this.endPoint -= this.padding;
                    var t, e = this.endPoint, n = this.endPoint - this.startPoint;
                    for (this.calculateYRange(n), this.buildYLabels(), this.calculateXLabelRotation(); n > this.endPoint - this.startPoint;)n = this.endPoint - this.startPoint, t = this.yLabelWidth, this.calculateYRange(n), this.buildYLabels(), t < this.yLabelWidth && (this.endPoint = e, this.calculateXLabelRotation())
                }, calculateXLabelRotation: function () {
                    this.ctx.font = this.font;
                    var t, e, n = this.ctx.measureText(this.xLabels[0]).width, i = this.ctx.measureText(this.xLabels[this.xLabels.length - 1]).width;
                    if (this.xScalePaddingRight = i / 2 + 3, this.xScalePaddingLeft = n / 2 > this.yLabelWidth ? n / 2 : this.yLabelWidth, this.xLabelRotation = 0, this.display) {
                        var o, r = D(this.ctx, this.font, this.xLabels);
                        this.xLabelWidth = r;
                        for (var s = Math.floor(this.calculateX(1) - this.calculateX(0)) - 6; this.xLabelWidth > s && 0 === this.xLabelRotation || this.xLabelWidth > s && this.xLabelRotation <= 90 && this.xLabelRotation > 0;)o = Math.cos(b(this.xLabelRotation)), t = o * n, e = o * i, t + this.fontSize / 2 > this.yLabelWidth && (this.xScalePaddingLeft = t + this.fontSize / 2), this.xScalePaddingRight = this.fontSize / 2, this.xLabelRotation++, this.xLabelWidth = o * r;
                        this.xLabelRotation > 0 && (this.endPoint -= Math.sin(b(this.xLabelRotation)) * r + 3)
                    } else this.xLabelWidth = 0, this.xScalePaddingRight = this.padding, this.xScalePaddingLeft = this.padding
                }, calculateYRange: h, drawingArea: function () {
                    return this.startPoint - this.endPoint
                }, calculateY: function (t) {
                    var e = this.drawingArea() / (this.min - this.max);
                    return this.endPoint - e * (t - this.min)
                }, calculateX: function (t) {
                    var e = (this.xLabelRotation > 0, this.width - (this.xScalePaddingLeft + this.xScalePaddingRight)), n = e / Math.max(this.valuesCount - (this.offsetGridLines ? 0 : 1), 1), i = n * t + this.xScalePaddingLeft;
                    return this.offsetGridLines && (i += n / 2), Math.round(i)
                }, update: function (t) {
                    o.extend(this, t), this.fit()
                }, draw: function () {
                    var t = this.ctx, e = (this.endPoint - this.startPoint) / this.steps, n = Math.round(this.xScalePaddingLeft);
                    this.display && (t.fillStyle = this.textColor, t.font = this.font, r(this.yLabels, function (i, r) {
                        var s = this.endPoint - e * r, a = Math.round(s), l = this.showHorizontalLines;
                        t.textAlign = "right", t.textBaseline = "middle", this.showLabels && t.fillText(i, n - 10, s), 0 !== r || l || (l = !0), l && t.beginPath(), r > 0 ? (t.lineWidth = this.gridLineWidth, t.strokeStyle = this.gridLineColor) : (t.lineWidth = this.lineWidth, t.strokeStyle = this.lineColor), a += o.aliasPixel(t.lineWidth), l && (t.moveTo(n, a), t.lineTo(this.width, a), t.stroke(), t.closePath()), t.lineWidth = this.lineWidth, t.strokeStyle = this.lineColor, t.beginPath(), t.moveTo(n - 5, a), t.lineTo(n, a), t.stroke(), t.closePath()
                    }, this), r(this.xLabels, function (e, n) {
                        var i = this.calculateX(n) + _(this.lineWidth), o = this.calculateX(n - (this.offsetGridLines ? .5 : 0)) + _(this.lineWidth), r = this.xLabelRotation > 0, s = this.showVerticalLines;
                        0 !== n || s || (s = !0), s && t.beginPath(), n > 0 ? (t.lineWidth = this.gridLineWidth, t.strokeStyle = this.gridLineColor) : (t.lineWidth = this.lineWidth, t.strokeStyle = this.lineColor), s && (t.moveTo(o, this.endPoint), t.lineTo(o, this.startPoint - 3), t.stroke(), t.closePath()), t.lineWidth = this.lineWidth, t.strokeStyle = this.lineColor, t.beginPath(), t.moveTo(o, this.endPoint), t.lineTo(o, this.endPoint + 5), t.stroke(), t.closePath(), t.save(), t.translate(i, r ? this.endPoint + 12 : this.endPoint + 8), t.rotate(b(this.xLabelRotation) * -1), t.font = this.font, t.textAlign = r ? "right" : "center", t.textBaseline = r ? "middle" : "top", t.fillText(e, 0, 0), t.restore()
                    }, this))
                }
            }), i.RadialScale = i.Element.extend({
                initialize: function () {
                    this.size = m([this.height, this.width]), this.drawingArea = this.display ? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY) : this.size / 2
                }, calculateCenterOffset: function (t) {
                    var e = this.drawingArea / (this.max - this.min);
                    return (t - this.min) * e
                }, update: function () {
                    this.lineArc ? this.drawingArea = this.display ? this.size / 2 - (this.fontSize / 2 + this.backdropPaddingY) : this.size / 2 : this.setScaleSize(), this.buildYLabels()
                }, buildYLabels: function () {
                    this.yLabels = [];
                    for (var t = g(this.stepValue), e = 0; e <= this.steps; e++)this.yLabels.push(k(this.templateString, {value: (this.min + e * this.stepValue).toFixed(t)}))
                }, getCircumference: function () {
                    return 2 * Math.PI / this.valuesCount
                }, setScaleSize: function () {
                    var t, e, n, i, o, r, s, a, l, u, c, h, f = m([this.height / 2 - this.pointLabelFontSize - 5, this.width / 2]), d = this.width, p = 0;
                    for (this.ctx.font = L(this.pointLabelFontSize, this.pointLabelFontStyle, this.pointLabelFontFamily), e = 0; e < this.valuesCount; e++)t = this.getPointPosition(e, f), n = this.ctx.measureText(k(this.templateString, {value: this.labels[e]})).width + 5, 0 === e || e === this.valuesCount / 2 ? (i = n / 2, t.x + i > d && (d = t.x + i, o = e), t.x - i < p && (p = t.x - i, s = e)) : e < this.valuesCount / 2 ? t.x + n > d && (d = t.x + n, o = e) : e > this.valuesCount / 2 && t.x - n < p && (p = t.x - n, s = e);
                    l = p, u = Math.ceil(d - this.width), r = this.getIndexAngle(o), a = this.getIndexAngle(s), c = u / Math.sin(r + Math.PI / 2), h = l / Math.sin(a + Math.PI / 2), c = y(c) ? c : 0, h = y(h) ? h : 0, this.drawingArea = f - (h + c) / 2, this.setCenterPoint(h, c)
                }, setCenterPoint: function (t, e) {
                    var n = this.width - e - this.drawingArea, i = t + this.drawingArea;
                    this.xCenter = (i + n) / 2, this.yCenter = this.height / 2
                }, getIndexAngle: function (t) {
                    var e = 2 * Math.PI / this.valuesCount;
                    return t * e - Math.PI / 2
                }, getPointPosition: function (t, e) {
                    var n = this.getIndexAngle(t);
                    return {x: Math.cos(n) * e + this.xCenter, y: Math.sin(n) * e + this.yCenter}
                }, draw: function () {
                    if (this.display) {
                        var t = this.ctx;
                        if (r(this.yLabels, function (e, n) {
                                if (n > 0) {
                                    var i, o = n * (this.drawingArea / this.steps), r = this.yCenter - o;
                                    if (this.lineWidth > 0)if (t.strokeStyle = this.lineColor, t.lineWidth = this.lineWidth, this.lineArc) t.beginPath(), t.arc(this.xCenter, this.yCenter, o, 0, 2 * Math.PI), t.closePath(), t.stroke(); else {
                                        t.beginPath();
                                        for (var s = 0; s < this.valuesCount; s++)i = this.getPointPosition(s, this.calculateCenterOffset(this.min + n * this.stepValue)), 0 === s ? t.moveTo(i.x, i.y) : t.lineTo(i.x, i.y);
                                        t.closePath(), t.stroke()
                                    }
                                    if (this.showLabels) {
                                        if (t.font = L(this.fontSize, this.fontStyle, this.fontFamily), this.showLabelBackdrop) {
                                            var a = t.measureText(e).width;
                                            t.fillStyle = this.backdropColor, t.fillRect(this.xCenter - a / 2 - this.backdropPaddingX, r - this.fontSize / 2 - this.backdropPaddingY, a + 2 * this.backdropPaddingX, this.fontSize + 2 * this.backdropPaddingY)
                                        }
                                        t.textAlign = "center", t.textBaseline = "middle", t.fillStyle = this.fontColor, t.fillText(e, this.xCenter, r)
                                    }
                                }
                            }, this), !this.lineArc) {
                            t.lineWidth = this.angleLineWidth, t.strokeStyle = this.angleLineColor;
                            for (var e = this.valuesCount - 1; e >= 0; e--) {
                                var n = null, i = null;
                                if (this.angleLineWidth > 0 && e % this.angleLineInterval === 0 && (n = this.calculateCenterOffset(this.max), i = this.getPointPosition(e, n), t.beginPath(), t.moveTo(this.xCenter, this.yCenter), t.lineTo(i.x, i.y), t.stroke(), t.closePath()), this.backgroundColors && this.backgroundColors.length == this.valuesCount) {
                                    null == n && (n = this.calculateCenterOffset(this.max)), null == i && (i = this.getPointPosition(e, n));
                                    var o = this.getPointPosition(0 === e ? this.valuesCount - 1 : e - 1, n), s = this.getPointPosition(e === this.valuesCount - 1 ? 0 : e + 1, n), a = {
                                        x: (o.x + i.x) / 2,
                                        y: (o.y + i.y) / 2
                                    }, l = {x: (i.x + s.x) / 2, y: (i.y + s.y) / 2};
                                    t.beginPath(), t.moveTo(this.xCenter, this.yCenter), t.lineTo(a.x, a.y), t.lineTo(i.x, i.y), t.lineTo(l.x, l.y), t.fillStyle = this.backgroundColors[e], t.fill(), t.closePath()
                                }
                                var u = this.getPointPosition(e, this.calculateCenterOffset(this.max) + 5);
                                t.font = L(this.pointLabelFontSize, this.pointLabelFontStyle, this.pointLabelFontFamily), t.fillStyle = this.pointLabelFontColor;
                                var c = this.labels.length, h = this.labels.length / 2, f = h / 2, d = e < f || e > c - f, p = e === f || e === c - f;
                                0 === e ? t.textAlign = "center" : e === h ? t.textAlign = "center" : e < h ? t.textAlign = "left" : t.textAlign = "right", p ? t.textBaseline = "middle" : d ? t.textBaseline = "bottom" : t.textBaseline = "top", t.fillText(this.labels[e], u.x, u.y)
                            }
                        }
                    }
                }
            }), i.animationService = {
                frameDuration: 17, animations: [], dropFrames: 0, addAnimation: function (t, e) {
                    for (var n = 0; n < this.animations.length; ++n)if (this.animations[n].chartInstance === t)return void(this.animations[n].animationObject = e);
                    this.animations.push({
                        chartInstance: t,
                        animationObject: e
                    }), 1 == this.animations.length && o.requestAnimFrame.call(window, this.digestWrapper)
                }, cancelAnimation: function (t) {
                    var e = o.findNextWhere(this.animations, function (e) {
                        return e.chartInstance === t
                    });
                    e && this.animations.splice(e, 1)
                }, digestWrapper: function () {
                    i.animationService.startDigest.call(i.animationService)
                }, startDigest: function () {
                    var t = Date.now(), e = 0;
                    this.dropFrames > 1 && (e = Math.floor(this.dropFrames), this.dropFrames -= e);
                    for (var n = 0; n < this.animations.length; n++)null === this.animations[n].animationObject.currentStep && (this.animations[n].animationObject.currentStep = 0), this.animations[n].animationObject.currentStep += 1 + e, this.animations[n].animationObject.currentStep > this.animations[n].animationObject.numSteps && (this.animations[n].animationObject.currentStep = this.animations[n].animationObject.numSteps), this.animations[n].animationObject.render(this.animations[n].chartInstance, this.animations[n].animationObject), this.animations[n].animationObject.currentStep == this.animations[n].animationObject.numSteps && (this.animations[n].animationObject.onAnimationComplete.call(this.animations[n].chartInstance), this.animations.splice(n, 1), n--);
                    var i = Date.now(), r = i - t - this.frameDuration, s = r / this.frameDuration;
                    s > 1 && (this.dropFrames += s), this.animations.length > 0 && o.requestAnimFrame.call(window, this.digestWrapper)
                }
            }, o.addEvent(window, "resize", function () {
                var t;
                return function () {
                    clearTimeout(t), t = setTimeout(function () {
                        r(i.instances, function (t) {
                            t.options.responsive && t.resize(t.render, !0)
                        })
                    }, 50)
                }
            }()), p ? define("Chart", [], function () {
                    return i
                }) : "object" == typeof e && e.exports && (e.exports = i), t.Chart = i, i.noConflict = function () {
                return t.Chart = n, i
            }
        }).call(this), function () {
            "use strict";
            var t = this, e = t.Chart, n = e.helpers, i = {
                scaleBeginAtZero: !0,
                scaleShowGridLines: !0,
                scaleGridLineColor: "rgba(0,0,0,.05)",
                scaleGridLineWidth: 1,
                scaleShowHorizontalLines: !0,
                scaleShowVerticalLines: !0,
                barShowStroke: !0,
                barStrokeWidth: 2,
                barValueSpacing: 5,
                barDatasetSpacing: 1,
                legendTemplate: '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span class="<%=name.toLowerCase()%>-legend-icon" style="background-color:<%=datasets[i].fillColor%>"></span><span class="<%=name.toLowerCase()%>-legend-text"><%if(datasets[i].label){%><%=datasets[i].label%><%}%></span></li><%}%></ul>'
            };
            e.Type.extend({
                name: "Bar", defaults: i, initialize: function (t) {
                    var i = this.options;
                    this.ScaleClass = e.Scale.extend({
                        offsetGridLines: !0, calculateBarX: function (t, e, n) {
                            var o = this.calculateBaseWidth(), r = this.calculateX(n) - o / 2, s = this.calculateBarWidth(t);
                            return r + s * e + e * i.barDatasetSpacing + s / 2
                        }, calculateBaseWidth: function () {
                            return this.calculateX(1) - this.calculateX(0) - 2 * i.barValueSpacing
                        }, calculateBarWidth: function (t) {
                            var e = this.calculateBaseWidth() - (t - 1) * i.barDatasetSpacing;
                            return e / t
                        }
                    }), this.datasets = [], this.options.showTooltips && n.bindEvents(this, this.options.tooltipEvents, function (t) {
                        var e = "mouseout" !== t.type ? this.getBarsAtEvent(t) : [];
                        this.eachBars(function (t) {
                            t.restore(["fillColor", "strokeColor"])
                        }), n.each(e, function (t) {
                            t && (t.fillColor = t.highlightFill, t.strokeColor = t.highlightStroke)
                        }), this.showTooltip(e)
                    }), this.BarClass = e.Rectangle.extend({
                        strokeWidth: this.options.barStrokeWidth,
                        showStroke: this.options.barShowStroke,
                        ctx: this.chart.ctx
                    }), n.each(t.datasets, function (e, i) {
                        var o = {label: e.label || null, fillColor: e.fillColor, strokeColor: e.strokeColor, bars: []};
                        this.datasets.push(o), n.each(e.data, function (n, i) {
                            o.bars.push(new this.BarClass({
                                value: n,
                                label: t.labels[i],
                                datasetLabel: e.label,
                                strokeColor: "object" == typeof e.strokeColor ? e.strokeColor[i] : e.strokeColor,
                                fillColor: "object" == typeof e.fillColor ? e.fillColor[i] : e.fillColor,
                                highlightFill: e.highlightFill ? "object" == typeof e.highlightFill ? e.highlightFill[i] : e.highlightFill : "object" == typeof e.fillColor ? e.fillColor[i] : e.fillColor,
                                highlightStroke: e.highlightStroke ? "object" == typeof e.highlightStroke ? e.highlightStroke[i] : e.highlightStroke : "object" == typeof e.strokeColor ? e.strokeColor[i] : e.strokeColor
                            }))
                        }, this)
                    }, this), this.buildScale(t.labels), this.BarClass.prototype.base = this.scale.endPoint, this.eachBars(function (t, e, i) {
                        n.extend(t, {
                            width: this.scale.calculateBarWidth(this.datasets.length),
                            x: this.scale.calculateBarX(this.datasets.length, i, e),
                            y: this.scale.endPoint
                        }), t.save()
                    }, this), this.render()
                }, update: function () {
                    this.scale.update(), n.each(this.activeElements, function (t) {
                        t.restore(["fillColor", "strokeColor"])
                    }), this.eachBars(function (t) {
                        t.save()
                    }), this.render()
                }, eachBars: function (t) {
                    n.each(this.datasets, function (e, i) {
                        n.each(e.bars, t, this, i)
                    }, this)
                }, getBarsAtEvent: function (t) {
                    for (var e, i = [], o = n.getRelativePosition(t), r = function (t) {
                        i.push(t.bars[e])
                    }, s = 0; s < this.datasets.length; s++)for (e = 0; e < this.datasets[s].bars.length; e++)if (this.datasets[s].bars[e].inRange(o.x, o.y))return n.each(this.datasets, r), i;
                    return i
                }, buildScale: function (t) {
                    var e = this, i = function () {
                        var t = [];
                        return e.eachBars(function (e) {
                            t.push(e.value)
                        }), t
                    }, o = {
                        templateString: this.options.scaleLabel,
                        height: this.chart.height,
                        width: this.chart.width,
                        ctx: this.chart.ctx,
                        textColor: this.options.scaleFontColor,
                        fontSize: this.options.scaleFontSize,
                        fontStyle: this.options.scaleFontStyle,
                        fontFamily: this.options.scaleFontFamily,
                        valuesCount: t.length,
                        beginAtZero: this.options.scaleBeginAtZero,
                        integersOnly: this.options.scaleIntegersOnly,
                        calculateYRange: function (t) {
                            var e = n.calculateScaleRange(i(), t, this.fontSize, this.beginAtZero, this.integersOnly);
                            n.extend(this, e)
                        },
                        xLabels: t,
                        font: n.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily),
                        lineWidth: this.options.scaleLineWidth,
                        lineColor: this.options.scaleLineColor,
                        showHorizontalLines: this.options.scaleShowHorizontalLines,
                        showVerticalLines: this.options.scaleShowVerticalLines,
                        gridLineWidth: this.options.scaleShowGridLines ? this.options.scaleGridLineWidth : 0,
                        gridLineColor: this.options.scaleShowGridLines ? this.options.scaleGridLineColor : "rgba(0,0,0,0)",
                        padding: this.options.showScale ? 0 : this.options.barShowStroke ? this.options.barStrokeWidth : 0,
                        showLabels: this.options.scaleShowLabels,
                        display: this.options.showScale
                    };
                    this.options.scaleOverride && n.extend(o, {
                        calculateYRange: n.noop,
                        steps: this.options.scaleSteps,
                        stepValue: this.options.scaleStepWidth,
                        min: this.options.scaleStartValue,
                        max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth
                    }), this.scale = new this.ScaleClass(o)
                }, addData: function (t, e) {
                    n.each(t, function (t, n) {
                        this.datasets[n].bars.push(new this.BarClass({
                            value: t,
                            label: e,
                            datasetLabel: this.datasets[n].label,
                            x: this.scale.calculateBarX(this.datasets.length, n, this.scale.valuesCount + 1),
                            y: this.scale.endPoint,
                            width: this.scale.calculateBarWidth(this.datasets.length),
                            base: this.scale.endPoint,
                            strokeColor: this.datasets[n].strokeColor,
                            fillColor: this.datasets[n].fillColor
                        }))
                    }, this), this.scale.addXLabel(e), this.update()
                }, removeData: function () {
                    this.scale.removeXLabel(), n.each(this.datasets, function (t) {
                        t.bars.shift()
                    }, this), this.update()
                }, reflow: function () {
                    n.extend(this.BarClass.prototype, {y: this.scale.endPoint, base: this.scale.endPoint});
                    var t = n.extend({height: this.chart.height, width: this.chart.width});
                    this.scale.update(t)
                }, draw: function (t) {
                    var e = t || 1;
                    this.clear();
                    this.chart.ctx;
                    this.scale.draw(e), n.each(this.datasets, function (t, i) {
                        n.each(t.bars, function (t, n) {
                            t.hasValue() && (t.base = this.scale.endPoint, t.transition({
                                x: this.scale.calculateBarX(this.datasets.length, i, n),
                                y: this.scale.calculateY(t.value),
                                width: this.scale.calculateBarWidth(this.datasets.length)
                            }, e).draw())
                        }, this)
                    }, this)
                }
            })
        }.call(this), function () {
            "use strict";
            var t = this, e = t.Chart, n = e.helpers, i = {
                segmentShowStroke: !0,
                segmentStrokeColor: "#fff",
                segmentStrokeWidth: 2,
                percentageInnerCutout: 50,
                animationSteps: 100,
                animationEasing: "easeOutBounce",
                animateRotate: !0,
                animateScale: !1,
                legendTemplate: '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span class="<%=name.toLowerCase()%>-legend-icon" style="background-color:<%=segments[i].fillColor%>"></span><span class="<%=name.toLowerCase()%>-legend-text"><%if(segments[i].label){%><%=segments[i].label%><%}%></span></li><%}%></ul>'
            };
            e.Type.extend({
                name: "Doughnut", defaults: i, initialize: function (t) {
                    this.segments = [], this.outerRadius = (n.min([this.chart.width, this.chart.height]) - this.options.segmentStrokeWidth / 2) / 2, this.SegmentArc = e.Arc.extend({
                        ctx: this.chart.ctx,
                        x: this.chart.width / 2,
                        y: this.chart.height / 2
                    }), this.options.showTooltips && n.bindEvents(this, this.options.tooltipEvents, function (t) {
                        var e = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : [];
                        n.each(this.segments, function (t) {
                            t.restore(["fillColor"])
                        }), n.each(e, function (t) {
                            t.fillColor = t.highlightColor
                        }), this.showTooltip(e)
                    }), this.calculateTotal(t), n.each(t, function (e, n) {
                        e.color || (e.color = "hsl(" + 360 * n / t.length + ", 100%, 50%)"), this.addData(e, n, !0)
                    }, this), this.render()
                }, getSegmentsAtEvent: function (t) {
                    var e = [], i = n.getRelativePosition(t);
                    return n.each(this.segments, function (t) {
                        t.inRange(i.x, i.y) && e.push(t)
                    }, this), e
                }, addData: function (t, n, i) {
                    var o = void 0 !== n ? n : this.segments.length;
                    "undefined" == typeof t.color && (t.color = e.defaults.global.segmentColorDefault[o % e.defaults.global.segmentColorDefault.length], t.highlight = e.defaults.global.segmentHighlightColorDefaults[o % e.defaults.global.segmentHighlightColorDefaults.length]), this.segments.splice(o, 0, new this.SegmentArc({
                        value: t.value,
                        outerRadius: this.options.animateScale ? 0 : this.outerRadius,
                        innerRadius: this.options.animateScale ? 0 : this.outerRadius / 100 * this.options.percentageInnerCutout,
                        fillColor: t.color,
                        highlightColor: t.highlight || t.color,
                        showStroke: this.options.segmentShowStroke,
                        strokeWidth: this.options.segmentStrokeWidth,
                        strokeColor: this.options.segmentStrokeColor,
                        startAngle: 1.5 * Math.PI,
                        circumference: this.options.animateRotate ? 0 : this.calculateCircumference(t.value),
                        label: t.label
                    })), i || (this.reflow(), this.update())
                }, calculateCircumference: function (t) {
                    return this.total > 0 ? 2 * Math.PI * (t / this.total) : 0
                }, calculateTotal: function (t) {
                    this.total = 0, n.each(t, function (t) {
                        this.total += Math.abs(t.value)
                    }, this)
                }, update: function () {
                    this.calculateTotal(this.segments), n.each(this.activeElements, function (t) {
                        t.restore(["fillColor"])
                    }), n.each(this.segments, function (t) {
                        t.save()
                    }), this.render()
                }, removeData: function (t) {
                    var e = n.isNumber(t) ? t : this.segments.length - 1;
                    this.segments.splice(e, 1), this.reflow(), this.update()
                }, reflow: function () {
                    n.extend(this.SegmentArc.prototype, {
                        x: this.chart.width / 2,
                        y: this.chart.height / 2
                    }), this.outerRadius = (n.min([this.chart.width, this.chart.height]) - this.options.segmentStrokeWidth / 2) / 2, n.each(this.segments, function (t) {
                        t.update({
                            outerRadius: this.outerRadius,
                            innerRadius: this.outerRadius / 100 * this.options.percentageInnerCutout
                        })
                    }, this)
                }, draw: function (t) {
                    var e = t ? t : 1;
                    this.clear(), n.each(this.segments, function (t, n) {
                        t.transition({
                            circumference: this.calculateCircumference(t.value),
                            outerRadius: this.outerRadius,
                            innerRadius: this.outerRadius / 100 * this.options.percentageInnerCutout
                        }, e), t.endAngle = t.startAngle + t.circumference, t.draw(), 0 === n && (t.startAngle = 1.5 * Math.PI), n < this.segments.length - 1 && (this.segments[n + 1].startAngle = t.endAngle)
                    }, this)
                }
            }), e.types.Doughnut.extend({name: "Pie", defaults: n.merge(i, {percentageInnerCutout: 0})})
        }.call(this), function () {
            "use strict";
            var t = this, e = t.Chart, n = e.helpers, i = {
                scaleShowGridLines: !0,
                scaleGridLineColor: "rgba(0,0,0,.05)",
                scaleGridLineWidth: 1,
                scaleShowHorizontalLines: !0,
                scaleShowVerticalLines: !0,
                bezierCurve: !0,
                bezierCurveTension: .4,
                pointDot: !0,
                pointDotRadius: 4,
                pointDotStrokeWidth: 1,
                pointHitDetectionRadius: 20,
                datasetStroke: !0,
                datasetStrokeWidth: 2,
                datasetFill: !0,
                legendTemplate: '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span class="<%=name.toLowerCase()%>-legend-icon" style="background-color:<%=datasets[i].strokeColor%>"></span><span class="<%=name.toLowerCase()%>-legend-text"><%if(datasets[i].label){%><%=datasets[i].label%><%}%></span></li><%}%></ul>',
                offsetGridLines: !1
            };
            e.Type.extend({
                name: "Line", defaults: i, initialize: function (t) {
                    this.PointClass = e.Point.extend({
                        offsetGridLines: this.options.offsetGridLines,
                        strokeWidth: this.options.pointDotStrokeWidth,
                        radius: this.options.pointDotRadius,
                        display: this.options.pointDot,
                        hitDetectionRadius: this.options.pointHitDetectionRadius,
                        ctx: this.chart.ctx,
                        inRange: function (t) {
                            return Math.pow(t - this.x, 2) < Math.pow(this.radius + this.hitDetectionRadius, 2)
                        }
                    }), this.datasets = [], this.options.showTooltips && n.bindEvents(this, this.options.tooltipEvents, function (t) {
                        var e = "mouseout" !== t.type ? this.getPointsAtEvent(t) : [];
                        this.eachPoints(function (t) {
                            t.restore(["fillColor", "strokeColor"])
                        }), n.each(e, function (t) {
                            t.fillColor = t.highlightFill, t.strokeColor = t.highlightStroke
                        }), this.showTooltip(e)
                    }), n.each(t.datasets, function (e) {
                        var i = {
                            label: e.label || null,
                            fillColor: e.fillColor,
                            strokeColor: e.strokeColor,
                            pointColor: e.pointColor,
                            pointStrokeColor: e.pointStrokeColor,
                            points: []
                        };
                        this.datasets.push(i), n.each(e.data, function (n, o) {
                            i.points.push(new this.PointClass({
                                value: n,
                                label: t.labels[o],
                                datasetLabel: e.label,
                                strokeColor: e.pointStrokeColor,
                                fillColor: e.pointColor,
                                highlightFill: e.pointHighlightFill || e.pointColor,
                                highlightStroke: e.pointHighlightStroke || e.pointStrokeColor
                            }))
                        }, this), this.buildScale(t.labels), this.eachPoints(function (t, e) {
                            n.extend(t, {x: this.scale.calculateX(e), y: this.scale.endPoint}), t.save()
                        }, this)
                    }, this), this.render()
                }, update: function () {
                    this.scale.update(), n.each(this.activeElements, function (t) {
                        t.restore(["fillColor", "strokeColor"])
                    }), this.eachPoints(function (t) {
                        t.save()
                    }), this.render()
                }, eachPoints: function (t) {
                    n.each(this.datasets, function (e) {
                        n.each(e.points, t, this)
                    }, this)
                }, getPointsAtEvent: function (t) {
                    var e = [], i = n.getRelativePosition(t);
                    return n.each(this.datasets, function (t) {
                        n.each(t.points, function (t) {
                            t.inRange(i.x, i.y) && e.push(t)
                        })
                    }, this), e
                }, buildScale: function (t) {
                    var i = this, o = function () {
                        var t = [];
                        return i.eachPoints(function (e) {
                            t.push(e.value)
                        }), t
                    }, r = {
                        templateString: this.options.scaleLabel,
                        height: this.chart.height,
                        width: this.chart.width,
                        ctx: this.chart.ctx,
                        textColor: this.options.scaleFontColor,
                        offsetGridLines: this.options.offsetGridLines,
                        fontSize: this.options.scaleFontSize,
                        fontStyle: this.options.scaleFontStyle,
                        fontFamily: this.options.scaleFontFamily,
                        valuesCount: t.length,
                        beginAtZero: this.options.scaleBeginAtZero,
                        integersOnly: this.options.scaleIntegersOnly,
                        calculateYRange: function (t) {
                            var e = n.calculateScaleRange(o(), t, this.fontSize, this.beginAtZero, this.integersOnly);
                            n.extend(this, e)
                        },
                        xLabels: t,
                        font: n.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily),
                        lineWidth: this.options.scaleLineWidth,
                        lineColor: this.options.scaleLineColor,
                        showHorizontalLines: this.options.scaleShowHorizontalLines,
                        showVerticalLines: this.options.scaleShowVerticalLines,
                        gridLineWidth: this.options.scaleShowGridLines ? this.options.scaleGridLineWidth : 0,
                        gridLineColor: this.options.scaleShowGridLines ? this.options.scaleGridLineColor : "rgba(0,0,0,0)",
                        padding: this.options.showScale ? 0 : this.options.pointDotRadius + this.options.pointDotStrokeWidth,
                        showLabels: this.options.scaleShowLabels,
                        display: this.options.showScale
                    };
                    this.options.scaleOverride && n.extend(r, {
                        calculateYRange: n.noop,
                        steps: this.options.scaleSteps,
                        stepValue: this.options.scaleStepWidth,
                        min: this.options.scaleStartValue,
                        max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth
                    }), this.scale = new e.Scale(r)
                }, addData: function (t, e) {
                    n.each(t, function (t, n) {
                        this.datasets[n].points.push(new this.PointClass({
                            value: t,
                            label: e,
                            datasetLabel: this.datasets[n].label,
                            x: this.scale.calculateX(this.scale.valuesCount + 1),
                            y: this.scale.endPoint,
                            strokeColor: this.datasets[n].pointStrokeColor,
                            fillColor: this.datasets[n].pointColor
                        }))
                    }, this), this.scale.addXLabel(e), this.update()
                }, removeData: function () {
                    this.scale.removeXLabel(), n.each(this.datasets, function (t) {
                        t.points.shift()
                    }, this), this.update()
                }, reflow: function () {
                    var t = n.extend({height: this.chart.height, width: this.chart.width});
                    this.scale.update(t)
                }, draw: function (t) {
                    var e = t || 1;
                    this.clear();
                    var i = this.chart.ctx, o = function (t) {
                        return null !== t.value
                    }, r = function (t, e, i) {
                        return n.findNextWhere(e, o, i) || t
                    }, s = function (t, e, i) {
                        return n.findPreviousWhere(e, o, i) || t
                    };
                    this.scale && (this.scale.draw(e), n.each(this.datasets, function (t) {
                        var a = n.where(t.points, o);
                        n.each(t.points, function (t, n) {
                            t.hasValue() && t.transition({
                                y: this.scale.calculateY(t.value),
                                x: this.scale.calculateX(n)
                            }, e)
                        }, this), this.options.bezierCurve && n.each(a, function (t, e) {
                            var i = e > 0 && e < a.length - 1 ? this.options.bezierCurveTension : 0;
                            t.controlPoints = n.splineCurve(s(t, a, e), t, r(t, a, e), i), t.controlPoints.outer.y > this.scale.endPoint ? t.controlPoints.outer.y = this.scale.endPoint : t.controlPoints.outer.y < this.scale.startPoint && (t.controlPoints.outer.y = this.scale.startPoint), t.controlPoints.inner.y > this.scale.endPoint ? t.controlPoints.inner.y = this.scale.endPoint : t.controlPoints.inner.y < this.scale.startPoint && (t.controlPoints.inner.y = this.scale.startPoint)
                        }, this), i.lineWidth = this.options.datasetStrokeWidth, i.strokeStyle = t.strokeColor, i.beginPath(), n.each(a, function (t, e) {
                            if (0 === e) i.moveTo(t.x, t.y); else if (this.options.bezierCurve) {
                                var n = s(t, a, e);
                                i.bezierCurveTo(n.controlPoints.outer.x, n.controlPoints.outer.y, t.controlPoints.inner.x, t.controlPoints.inner.y, t.x, t.y)
                            } else i.lineTo(t.x, t.y)
                        }, this), this.options.datasetStroke && i.stroke(), this.options.datasetFill && a.length > 0 && (i.lineTo(a[a.length - 1].x, this.scale.endPoint), i.lineTo(a[0].x, this.scale.endPoint), i.fillStyle = t.fillColor, i.closePath(), i.fill()), n.each(a, function (t) {
                            t.draw()
                        })
                    }, this))
                }
            })
        }.call(this), function () {
            "use strict";
            var t = this, e = t.Chart, n = e.helpers, i = {
                scaleShowLabelBackdrop: !0,
                scaleBackdropColor: "rgba(255,255,255,0.75)",
                scaleBeginAtZero: !0,
                scaleBackdropPaddingY: 2,
                scaleBackdropPaddingX: 2,
                scaleShowLine: !0,
                segmentShowStroke: !0,
                segmentStrokeColor: "#fff",
                segmentStrokeWidth: 2,
                animationSteps: 100,
                animationEasing: "easeOutBounce",
                animateRotate: !0,
                animateScale: !1,
                legendTemplate: '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span class="<%=name.toLowerCase()%>-legend-icon" style="background-color:<%=segments[i].fillColor%>"></span><span class="<%=name.toLowerCase()%>-legend-text"><%if(segments[i].label){%><%=segments[i].label%><%}%></span></li><%}%></ul>'
            };
            e.Type.extend({
                name: "PolarArea", defaults: i, initialize: function (t) {
                    this.segments = [], this.SegmentArc = e.Arc.extend({
                        showStroke: this.options.segmentShowStroke,
                        strokeWidth: this.options.segmentStrokeWidth,
                        strokeColor: this.options.segmentStrokeColor,
                        ctx: this.chart.ctx,
                        innerRadius: 0,
                        x: this.chart.width / 2,
                        y: this.chart.height / 2
                    }), this.scale = new e.RadialScale({
                        display: this.options.showScale,
                        fontStyle: this.options.scaleFontStyle,
                        fontSize: this.options.scaleFontSize,
                        fontFamily: this.options.scaleFontFamily,
                        fontColor: this.options.scaleFontColor,
                        showLabels: this.options.scaleShowLabels,
                        showLabelBackdrop: this.options.scaleShowLabelBackdrop,
                        backdropColor: this.options.scaleBackdropColor,
                        backdropPaddingY: this.options.scaleBackdropPaddingY,
                        backdropPaddingX: this.options.scaleBackdropPaddingX,
                        lineWidth: this.options.scaleShowLine ? this.options.scaleLineWidth : 0,
                        lineColor: this.options.scaleLineColor,
                        lineArc: !0,
                        width: this.chart.width,
                        height: this.chart.height,
                        xCenter: this.chart.width / 2,
                        yCenter: this.chart.height / 2,
                        ctx: this.chart.ctx,
                        templateString: this.options.scaleLabel,
                        valuesCount: t.length
                    }), this.updateScaleRange(t), this.scale.update(), n.each(t, function (t, e) {
                        this.addData(t, e, !0)
                    }, this), this.options.showTooltips && n.bindEvents(this, this.options.tooltipEvents, function (t) {
                        var e = "mouseout" !== t.type ? this.getSegmentsAtEvent(t) : [];
                        n.each(this.segments, function (t) {
                            t.restore(["fillColor"])
                        }), n.each(e, function (t) {
                            t.fillColor = t.highlightColor
                        }), this.showTooltip(e)
                    }), this.render()
                }, getSegmentsAtEvent: function (t) {
                    var e = [], i = n.getRelativePosition(t);
                    return n.each(this.segments, function (t) {
                        t.inRange(i.x, i.y) && e.push(t)
                    }, this), e
                }, addData: function (t, e, n) {
                    var i = e || this.segments.length;
                    this.segments.splice(i, 0, new this.SegmentArc({
                        fillColor: t.color,
                        highlightColor: t.highlight || t.color,
                        label: t.label,
                        value: t.value,
                        outerRadius: this.options.animateScale ? 0 : this.scale.calculateCenterOffset(t.value),
                        circumference: this.options.animateRotate ? 0 : this.scale.getCircumference(),
                        startAngle: 1.5 * Math.PI
                    })), n || (this.reflow(), this.update())
                }, removeData: function (t) {
                    var e = n.isNumber(t) ? t : this.segments.length - 1;
                    this.segments.splice(e, 1), this.reflow(), this.update()
                }, calculateTotal: function (t) {
                    this.total = 0, n.each(t, function (t) {
                        this.total += t.value
                    }, this), this.scale.valuesCount = this.segments.length
                }, updateScaleRange: function (t) {
                    var e = [];
                    n.each(t, function (t) {
                        e.push(t.value)
                    });
                    var i = this.options.scaleOverride ? {
                            steps: this.options.scaleSteps,
                            stepValue: this.options.scaleStepWidth,
                            min: this.options.scaleStartValue,
                            max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth
                        } : n.calculateScaleRange(e, n.min([this.chart.width, this.chart.height]) / 2, this.options.scaleFontSize, this.options.scaleBeginAtZero, this.options.scaleIntegersOnly);
                    n.extend(this.scale, i, {
                        size: n.min([this.chart.width, this.chart.height]),
                        xCenter: this.chart.width / 2,
                        yCenter: this.chart.height / 2
                    })
                }, update: function () {
                    this.calculateTotal(this.segments), n.each(this.segments, function (t) {
                        t.save()
                    }), this.reflow(), this.render()
                }, reflow: function () {
                    n.extend(this.SegmentArc.prototype, {
                        x: this.chart.width / 2,
                        y: this.chart.height / 2
                    }), this.updateScaleRange(this.segments), this.scale.update(), n.extend(this.scale, {
                        xCenter: this.chart.width / 2,
                        yCenter: this.chart.height / 2
                    }), n.each(this.segments, function (t) {
                        t.update({outerRadius: this.scale.calculateCenterOffset(t.value)})
                    }, this)
                }, draw: function (t) {
                    var e = t || 1;
                    this.clear(), n.each(this.segments, function (t, n) {
                        t.transition({
                            circumference: this.scale.getCircumference(),
                            outerRadius: this.scale.calculateCenterOffset(t.value)
                        }, e), t.endAngle = t.startAngle + t.circumference, 0 === n && (t.startAngle = 1.5 * Math.PI), n < this.segments.length - 1 && (this.segments[n + 1].startAngle = t.endAngle), t.draw()
                    }, this), this.scale.draw()
                }
            })
        }.call(this), function () {
            "use strict";
            var t = this, e = t.Chart, n = e.helpers;
            e.Type.extend({
                name: "Radar",
                defaults: {
                    scaleShowLine: !0,
                    angleShowLineOut: !0,
                    scaleShowLabels: !1,
                    scaleBeginAtZero: !0,
                    angleLineColor: "rgba(0,0,0,.1)",
                    angleLineWidth: 1,
                    angleLineInterval: 1,
                    pointLabelFontFamily: "'Arial'",
                    pointLabelFontStyle: "normal",
                    pointLabelFontSize: 10,
                    pointLabelFontColor: "#666",
                    pointDot: !0,
                    pointDotRadius: 3,
                    pointDotStrokeWidth: 1,
                    pointHitDetectionRadius: 20,
                    datasetStroke: !0,
                    datasetStrokeWidth: 2,
                    datasetFill: !0,
                    legendTemplate: '<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span class="<%=name.toLowerCase()%>-legend-icon" style="background-color:<%=datasets[i].strokeColor%>"></span><span class="<%=name.toLowerCase()%>-legend-text"><%if(datasets[i].label){%><%=datasets[i].label%><%}%></span></li><%}%></ul>'
                },
                initialize: function (t) {
                    this.PointClass = e.Point.extend({
                        strokeWidth: this.options.pointDotStrokeWidth,
                        radius: this.options.pointDotRadius,
                        display: this.options.pointDot,
                        hitDetectionRadius: this.options.pointHitDetectionRadius,
                        ctx: this.chart.ctx
                    }), this.datasets = [], this.buildScale(t), this.options.showTooltips && n.bindEvents(this, this.options.tooltipEvents, function (t) {
                        var e = "mouseout" !== t.type ? this.getPointsAtEvent(t) : [];
                        this.eachPoints(function (t) {
                            t.restore(["fillColor", "strokeColor"])
                        }), n.each(e, function (t) {
                            t.fillColor = t.highlightFill, t.strokeColor = t.highlightStroke
                        }), this.showTooltip(e)
                    }), n.each(t.datasets, function (e) {
                        var i = {
                            label: e.label || null,
                            fillColor: e.fillColor,
                            strokeColor: e.strokeColor,
                            pointColor: e.pointColor,
                            pointStrokeColor: e.pointStrokeColor,
                            points: []
                        };
                        this.datasets.push(i), n.each(e.data, function (n, o) {
                            var r;
                            this.scale.animation || (r = this.scale.getPointPosition(o, this.scale.calculateCenterOffset(n))), i.points.push(new this.PointClass({
                                value: n,
                                label: t.labels[o],
                                datasetLabel: e.label,
                                x: this.options.animation ? this.scale.xCenter : r.x,
                                y: this.options.animation ? this.scale.yCenter : r.y,
                                strokeColor: e.pointStrokeColor,
                                fillColor: e.pointColor,
                                highlightFill: e.pointHighlightFill || e.pointColor,
                                highlightStroke: e.pointHighlightStroke || e.pointStrokeColor
                            }))
                        }, this)
                    }, this), this.render()
                },
                eachPoints: function (t) {
                    n.each(this.datasets, function (e) {
                        n.each(e.points, t, this)
                    }, this)
                },
                getPointsAtEvent: function (t) {
                    var e = n.getRelativePosition(t), i = n.getAngleFromPoint({
                        x: this.scale.xCenter,
                        y: this.scale.yCenter
                    }, e), o = 2 * Math.PI / this.scale.valuesCount, r = Math.round((i.angle - 1.5 * Math.PI) / o), s = [];
                    return (r >= this.scale.valuesCount || r < 0) && (r = 0), i.distance <= this.scale.drawingArea && n.each(this.datasets, function (t) {
                        s.push(t.points[r])
                    }), s
                },
                buildScale: function (t) {
                    this.scale = new e.RadialScale({
                        display: this.options.showScale,
                        fontStyle: this.options.scaleFontStyle,
                        fontSize: this.options.scaleFontSize,
                        fontFamily: this.options.scaleFontFamily,
                        fontColor: this.options.scaleFontColor,
                        showLabels: this.options.scaleShowLabels,
                        showLabelBackdrop: this.options.scaleShowLabelBackdrop,
                        backdropColor: this.options.scaleBackdropColor,
                        backgroundColors: this.options.scaleBackgroundColors,
                        backdropPaddingY: this.options.scaleBackdropPaddingY,
                        backdropPaddingX: this.options.scaleBackdropPaddingX,
                        lineWidth: this.options.scaleShowLine ? this.options.scaleLineWidth : 0,
                        lineColor: this.options.scaleLineColor,
                        angleLineColor: this.options.angleLineColor,
                        angleLineWidth: this.options.angleShowLineOut ? this.options.angleLineWidth : 0,
                        angleLineInterval: this.options.angleLineInterval ? this.options.angleLineInterval : 1,
                        pointLabelFontColor: this.options.pointLabelFontColor,
                        pointLabelFontSize: this.options.pointLabelFontSize,
                        pointLabelFontFamily: this.options.pointLabelFontFamily,
                        pointLabelFontStyle: this.options.pointLabelFontStyle,
                        height: this.chart.height,
                        width: this.chart.width,
                        xCenter: this.chart.width / 2,
                        yCenter: this.chart.height / 2,
                        ctx: this.chart.ctx,
                        templateString: this.options.scaleLabel,
                        labels: t.labels,
                        valuesCount: t.datasets[0].data.length
                    }), this.scale.setScaleSize(), this.updateScaleRange(t.datasets), this.scale.buildYLabels()
                },
                updateScaleRange: function (t) {
                    var e = function () {
                        var e = [];
                        return n.each(t, function (t) {
                            t.data ? e = e.concat(t.data) : n.each(t.points, function (t) {
                                    e.push(t.value)
                                })
                        }), e
                    }(), i = this.options.scaleOverride ? {
                            steps: this.options.scaleSteps,
                            stepValue: this.options.scaleStepWidth,
                            min: this.options.scaleStartValue,
                            max: this.options.scaleStartValue + this.options.scaleSteps * this.options.scaleStepWidth
                        } : n.calculateScaleRange(e, n.min([this.chart.width, this.chart.height]) / 2, this.options.scaleFontSize, this.options.scaleBeginAtZero, this.options.scaleIntegersOnly);
                    n.extend(this.scale, i)
                },
                addData: function (t, e) {
                    this.scale.valuesCount++, n.each(t, function (t, n) {
                        var i = this.scale.getPointPosition(this.scale.valuesCount, this.scale.calculateCenterOffset(t));
                        this.datasets[n].points.push(new this.PointClass({
                            value: t,
                            label: e,
                            datasetLabel: this.datasets[n].label,
                            x: i.x,
                            y: i.y,
                            strokeColor: this.datasets[n].pointStrokeColor,
                            fillColor: this.datasets[n].pointColor
                        }))
                    }, this), this.scale.labels.push(e), this.reflow(), this.update()
                },
                removeData: function () {
                    this.scale.valuesCount--, this.scale.labels.shift(), n.each(this.datasets, function (t) {
                        t.points.shift()
                    }, this), this.reflow(), this.update()
                },
                update: function () {
                    this.eachPoints(function (t) {
                        t.save()
                    }), this.reflow(), this.render()
                },
                reflow: function () {
                    n.extend(this.scale, {
                        width: this.chart.width,
                        height: this.chart.height,
                        size: n.min([this.chart.width, this.chart.height]),
                        xCenter: this.chart.width / 2,
                        yCenter: this.chart.height / 2
                    }), this.updateScaleRange(this.datasets), this.scale.setScaleSize(), this.scale.buildYLabels()
                },
                draw: function (t) {
                    var e = t || 1, i = this.chart.ctx;
                    this.clear(), this.scale.draw(), n.each(this.datasets, function (t) {
                        n.each(t.points, function (t, n) {
                            t.hasValue() && t.transition(this.scale.getPointPosition(n, this.scale.calculateCenterOffset(t.value)), e)
                        }, this), i.lineWidth = this.options.datasetStrokeWidth, i.strokeStyle = t.strokeColor, i.beginPath(), n.each(t.points, function (t, e) {
                            0 === e ? i.moveTo(t.x, t.y) : i.lineTo(t.x, t.y)
                        }, this), i.closePath(), i.stroke(), i.fillStyle = t.fillColor, this.options.datasetFill && i.fill(), n.each(t.points, function (t) {
                            t.hasValue() && t.draw()
                        })
                    }, this)
                }
            })
        }.call(this)
    }, {}],
    2: [function (t, e, n) {
        !function (t, i) {
            if ("function" == typeof define && define.amd) define(["exports", "module"], i); else if ("undefined" != typeof n && "undefined" != typeof e) i(n, e); else {
                var o = {exports: {}};
                i(o.exports, o), t.autosize = o.exports
            }
        }(this, function (t, e) {
            "use strict";
            function n(t) {
                function e() {
                    var e = window.getComputedStyle(t, null);
                    "vertical" === e.resize ? t.style.resize = "none" : "both" === e.resize && (t.style.resize = "horizontal"), l = "content-box" === e.boxSizing ? -(parseFloat(e.paddingTop) + parseFloat(e.paddingBottom)) : parseFloat(e.borderTopWidth) + parseFloat(e.borderBottomWidth), isNaN(l) && (l = 0), a()
                }

                function n(e) {
                    var n = t.style.width;
                    t.style.width = "0px", t.offsetWidth, t.style.width = n, t.style.overflowY = e, o()
                }

                function i(t) {
                    for (var e = []; t && t.parentNode && t.parentNode instanceof Element;)t.parentNode.scrollTop && e.push({
                        node: t.parentNode,
                        scrollTop: t.parentNode.scrollTop
                    }), t = t.parentNode;
                    return e
                }

                function o() {
                    var e = t.style.height, n = i(t), o = document.documentElement && document.documentElement.scrollTop;
                    t.style.height = "auto";
                    var r = t.scrollHeight + l;
                    return 0 === t.scrollHeight ? void(t.style.height = e) : (t.style.height = r + "px", u = t.clientWidth, n.forEach(function (t) {
                            t.node.scrollTop = t.scrollTop
                        }), void(o && (document.documentElement.scrollTop = o)))
                }

                function a() {
                    o();
                    var e = window.getComputedStyle(t, null), i = Math.round(parseFloat(e.height)), r = Math.round(parseFloat(t.style.height));
                    if (i !== r ? "visible" !== e.overflowY && n("visible") : "hidden" !== e.overflowY && n("hidden"), c !== i) {
                        c = i;
                        var a = s("autosize:resized");
                        try {
                            t.dispatchEvent(a)
                        } catch (l) {
                        }
                    }
                }

                if (t && t.nodeName && "TEXTAREA" === t.nodeName && !r.has(t)) {
                    var l = null, u = t.clientWidth, c = null, h = function () {
                        t.clientWidth !== u && a()
                    }, f = function (e) {
                        window.removeEventListener("resize", h, !1), t.removeEventListener("input", a, !1), t.removeEventListener("keyup", a, !1), t.removeEventListener("autosize:destroy", f, !1), t.removeEventListener("autosize:update", a, !1), Object.keys(e).forEach(function (n) {
                            t.style[n] = e[n]
                        }), r["delete"](t)
                    }.bind(t, {
                        height: t.style.height,
                        resize: t.style.resize,
                        overflowY: t.style.overflowY,
                        overflowX: t.style.overflowX,
                        wordWrap: t.style.wordWrap
                    });
                    t.addEventListener("autosize:destroy", f, !1), "onpropertychange" in t && "oninput" in t && t.addEventListener("keyup", a, !1), window.addEventListener("resize", h, !1), t.addEventListener("input", a, !1), t.addEventListener("autosize:update", a, !1), t.style.overflowX = "hidden", t.style.wordWrap = "break-word", r.set(t, {
                        destroy: f,
                        update: a
                    }), e()
                }
            }

            function i(t) {
                var e = r.get(t);
                e && e.destroy()
            }

            function o(t) {
                var e = r.get(t);
                e && e.update()
            }

            var r = "function" == typeof Map ? new Map : function () {
                    var t = [], e = [];
                    return {
                        has: function (e) {
                            return t.indexOf(e) > -1
                        }, get: function (n) {
                            return e[t.indexOf(n)]
                        }, set: function (n, i) {
                            t.indexOf(n) === -1 && (t.push(n), e.push(i))
                        }, "delete": function (n) {
                            var i = t.indexOf(n);
                            i > -1 && (t.splice(i, 1), e.splice(i, 1))
                        }
                    }
                }(), s = function (t) {
                return new Event(t)
            };
            try {
                new Event("test")
            } catch (a) {
                s = function (t) {
                    var e = document.createEvent("Event");
                    return e.initEvent(t, !0, !1), e
                }
            }
            var l = null;
            "undefined" == typeof window || "function" != typeof window.getComputedStyle ? (l = function (t) {
                    return t
                }, l.destroy = function (t) {
                    return t
                }, l.update = function (t) {
                    return t
                }) : (l = function (t, e) {
                    return t && Array.prototype.forEach.call(t.length ? t : [t], function (t) {
                        return n(t, e)
                    }), t
                }, l.destroy = function (t) {
                    return t && Array.prototype.forEach.call(t.length ? t : [t], i), t
                }, l.update = function (t) {
                    return t && Array.prototype.forEach.call(t.length ? t : [t], o), t
                }), e.exports = l
        })
    }, {}],
    3: [function (t, e, n) {
    }, {}],
    4: [function (t, e, n) {
        "use strict";
        var i = t("object-keys"), o = t("foreach"), r = "function" == typeof Symbol && "symbol" == typeof Symbol(), s = Object.prototype.toString, a = function (t) {
            return "function" == typeof t && "[object Function]" === s.call(t)
        }, l = function () {
            var t = {};
            try {
                Object.defineProperty(t, "x", {enumerable: !1, value: t});
                for (var e in t)return !1;
                return t.x === t
            } catch (n) {
                return !1
            }
        }, u = Object.defineProperty && l(), c = function (t, e, n, i) {
            (!(e in t) || a(i) && i()) && (u ? Object.defineProperty(t, e, {
                    configurable: !0,
                    enumerable: !1,
                    value: n,
                    writable: !0
                }) : t[e] = n)
        }, h = function (t, e) {
            var n = arguments.length > 2 ? arguments[2] : {}, s = i(e);
            r && (s = s.concat(Object.getOwnPropertySymbols(e))), o(s, function (i) {
                c(t, i, e[i], n[i])
            })
        };
        h.supportsDescriptors = !!u, e.exports = h
    }, {foreach: 6, "object-keys": 52}],
    5: [function (t, e, n) {
        function i(t, e, n) {
            if (!a(e))throw new TypeError("iterator must be a function");
            arguments.length < 3 && (n = this), "[object Array]" === l.call(t) ? o(t, e, n) : "string" == typeof t ? r(t, e, n) : s(t, e, n)
        }

        function o(t, e, n) {
            for (var i = 0, o = t.length; i < o; i++)u.call(t, i) && e.call(n, t[i], i, t)
        }

        function r(t, e, n) {
            for (var i = 0, o = t.length; i < o; i++)e.call(n, t.charAt(i), i, t)
        }

        function s(t, e, n) {
            for (var i in t)u.call(t, i) && e.call(n, t[i], i, t)
        }

        var a = t("is-function");
        e.exports = i;
        var l = Object.prototype.toString, u = Object.prototype.hasOwnProperty
    }, {"is-function": 11}],
    6: [function (t, e, n) {
        var i = Object.prototype.hasOwnProperty, o = Object.prototype.toString;
        e.exports = function (t, e, n) {
            if ("[object Function]" !== o.call(e))throw new TypeError("iterator must be a function");
            var r = t.length;
            if (r === +r)for (var s = 0; s < r; s++)e.call(n, t[s], s, t); else for (var a in t)i.call(t, a) && e.call(n, t[a], a, t)
        }
    }, {}],
    7: [function (t, e, n) {
        var i = "Function.prototype.bind called on incompatible ", o = Array.prototype.slice, r = Object.prototype.toString, s = "[object Function]";
        e.exports = function (t) {
            var e = this;
            if ("function" != typeof e || r.call(e) !== s)throw new TypeError(i + e);
            for (var n, a = o.call(arguments, 1), l = function () {
                if (this instanceof n) {
                    var i = e.apply(this, a.concat(o.call(arguments)));
                    return Object(i) === i ? i : this
                }
                return e.apply(t, a.concat(o.call(arguments)))
            }, u = Math.max(0, e.length - a.length), c = [], h = 0; h < u; h++)c.push("$" + h);
            if (n = Function("binder", "return function (" + c.join(",") + "){ return binder.apply(this,arguments); }")(l), e.prototype) {
                var f = function () {
                };
                f.prototype = e.prototype, n.prototype = new f, f.prototype = null
            }
            return n
        }
    }, {}],
    8: [function (t, e, n) {
        var i = t("./implementation");
        e.exports = Function.prototype.bind || i
    }, {"./implementation": 7}],
    9: [function (t, e, n) {
        (function (n) {
            var i = "undefined" != typeof n ? n : "undefined" != typeof window ? window : {}, o = t("min-document");
            if ("undefined" != typeof document) e.exports = document; else {
                var r = i["__GLOBAL_DOCUMENT_CACHE@4"];
                r || (r = i["__GLOBAL_DOCUMENT_CACHE@4"] = o), e.exports = r
            }
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {"min-document": 3}],
    10: [function (t, e, n) {
        (function (t) {
            "undefined" != typeof window ? e.exports = window : "undefined" != typeof t ? e.exports = t : "undefined" != typeof self ? e.exports = self : e.exports = {}
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {}],
    11: [function (t, e, n) {
        function i(t) {
            var e = o.call(t);
            return "[object Function]" === e || "function" == typeof t && "[object RegExp]" !== e || "undefined" != typeof window && (t === window.setTimeout || t === window.alert || t === window.confirm || t === window.prompt);
        }

        e.exports = i;
        var o = Object.prototype.toString
    }, {}],
    12: [function (t, e, n) {
        var i = t("../internal/getNative"), o = i(Date, "now"), r = o || function () {
                return (new Date).getTime()
            };
        e.exports = r
    }, {"../internal/getNative": 28}],
    13: [function (t, e, n) {
        function i(t, e, n) {
            function i() {
                m && clearTimeout(m), d && clearTimeout(d), b = 0, d = m = g = void 0
            }

            function l(e, n) {
                n && clearTimeout(n), d = m = g = void 0, e && (b = r(), p = t.apply(v, f), m || d || (f = v = void 0))
            }

            function u() {
                var t = e - (r() - y);
                t <= 0 || t > e ? l(g, d) : m = setTimeout(u, t)
            }

            function c() {
                l(w, m)
            }

            function h() {
                if (f = arguments, y = r(), v = this, g = w && (m || !k), _ === !1)var n = k && !m; else {
                    d || k || (b = y);
                    var i = _ - (y - b), o = i <= 0 || i > _;
                    o ? (d && (d = clearTimeout(d)), b = y, p = t.apply(v, f)) : d || (d = setTimeout(c, i))
                }
                return o && m ? m = clearTimeout(m) : m || e === _ || (m = setTimeout(u, e)), n && (o = !0, p = t.apply(v, f)), !o || m || d || (f = v = void 0), p
            }

            var f, d, p, y, v, m, g, b = 0, _ = !1, w = !0;
            if ("function" != typeof t)throw new TypeError(s);
            if (e = e < 0 ? 0 : +e || 0, n === !0) {
                var k = !0;
                w = !1
            } else o(n) && (k = !!n.leading, _ = "maxWait" in n && a(+n.maxWait || 0, e), w = "trailing" in n ? !!n.trailing : w);
            return h.cancel = i, h
        }

        var o = t("../lang/isObject"), r = t("../date/now"), s = "Expected a function", a = Math.max;
        e.exports = i
    }, {"../date/now": 12, "../lang/isObject": 41}],
    14: [function (t, e, n) {
        function i(t, e) {
            if ("function" != typeof t)throw new TypeError(o);
            return e = r(void 0 === e ? t.length - 1 : +e || 0, 0), function () {
                for (var n = arguments, i = -1, o = r(n.length - e, 0), s = Array(o); ++i < o;)s[i] = n[e + i];
                switch (e) {
                    case 0:
                        return t.call(this, s);
                    case 1:
                        return t.call(this, n[0], s);
                    case 2:
                        return t.call(this, n[0], n[1], s)
                }
                var a = Array(e + 1);
                for (i = -1; ++i < e;)a[i] = n[i];
                return a[e] = s, t.apply(this, a)
            }
        }

        var o = "Expected a function", r = Math.max;
        e.exports = i
    }, {}],
    15: [function (t, e, n) {
        function i(t, e, n) {
            var i = !0, a = !0;
            if ("function" != typeof t)throw new TypeError(s);
            return n === !1 ? i = !1 : r(n) && (i = "leading" in n ? !!n.leading : i, a = "trailing" in n ? !!n.trailing : a), o(t, e, {
                leading: i,
                maxWait: +e,
                trailing: a
            })
        }

        var o = t("./debounce"), r = t("../lang/isObject"), s = "Expected a function";
        e.exports = i
    }, {"../lang/isObject": 41, "./debounce": 13}],
    16: [function (t, e, n) {
        function i(t, e) {
            var n = -1, i = t.length;
            for (e || (e = Array(i)); ++n < i;)e[n] = t[n];
            return e
        }

        e.exports = i
    }, {}],
    17: [function (t, e, n) {
        function i(t, e) {
            for (var n = -1, i = t.length; ++n < i && e(t[n], n, t) !== !1;);
            return t
        }

        e.exports = i
    }, {}],
    18: [function (t, e, n) {
        function i(t, e, n) {
            n || (n = {});
            for (var i = -1, o = e.length; ++i < o;) {
                var r = e[i];
                n[r] = t[r]
            }
            return n
        }

        e.exports = i
    }, {}],
    19: [function (t, e, n) {
        var i = t("./createBaseFor"), o = i();
        e.exports = o
    }, {"./createBaseFor": 26}],
    20: [function (t, e, n) {
        function i(t, e) {
            return o(t, e, r)
        }

        var o = t("./baseFor"), r = t("../object/keysIn");
        e.exports = i
    }, {"../object/keysIn": 47, "./baseFor": 19}],
    21: [function (t, e, n) {
        function i(t, e, n, f, d) {
            if (!l(t))return t;
            var p = a(e) && (s(e) || c(e)), y = p ? void 0 : h(e);
            return o(y || e, function (o, s) {
                if (y && (s = o, o = e[s]), u(o)) f || (f = []), d || (d = []), r(t, e, s, i, n, f, d); else {
                    var a = t[s], l = n ? n(a, o, s, t, e) : void 0, c = void 0 === l;
                    c && (l = o), void 0 === l && (!p || s in t) || !c && (l === l ? l === a : a !== a) || (t[s] = l)
                }
            }), t
        }

        var o = t("./arrayEach"), r = t("./baseMergeDeep"), s = t("../lang/isArray"), a = t("./isArrayLike"), l = t("../lang/isObject"), u = t("./isObjectLike"), c = t("../lang/isTypedArray"), h = t("../object/keys");
        e.exports = i
    }, {
        "../lang/isArray": 38,
        "../lang/isObject": 41,
        "../lang/isTypedArray": 44,
        "../object/keys": 46,
        "./arrayEach": 17,
        "./baseMergeDeep": 22,
        "./isArrayLike": 29,
        "./isObjectLike": 34
    }],
    22: [function (t, e, n) {
        function i(t, e, n, i, h, f, d) {
            for (var p = f.length, y = e[n]; p--;)if (f[p] == y)return void(t[n] = d[p]);
            var v = t[n], m = h ? h(v, y, n, t, e) : void 0, g = void 0 === m;
            g && (m = y, a(y) && (s(y) || u(y)) ? m = s(v) ? v : a(v) ? o(v) : [] : l(y) || r(y) ? m = r(v) ? c(v) : l(v) ? v : {} : g = !1), f.push(y), d.push(m), g ? t[n] = i(m, y, h, f, d) : (m === m ? m !== v : v === v) && (t[n] = m)
        }

        var o = t("./arrayCopy"), r = t("../lang/isArguments"), s = t("../lang/isArray"), a = t("./isArrayLike"), l = t("../lang/isPlainObject"), u = t("../lang/isTypedArray"), c = t("../lang/toPlainObject");
        e.exports = i
    }, {
        "../lang/isArguments": 37,
        "../lang/isArray": 38,
        "../lang/isPlainObject": 42,
        "../lang/isTypedArray": 44,
        "../lang/toPlainObject": 45,
        "./arrayCopy": 16,
        "./isArrayLike": 29
    }],
    23: [function (t, e, n) {
        function i(t) {
            return function (e) {
                return null == e ? void 0 : o(e)[t]
            }
        }

        var o = t("./toObject");
        e.exports = i
    }, {"./toObject": 36}],
    24: [function (t, e, n) {
        function i(t, e, n) {
            if ("function" != typeof t)return o;
            if (void 0 === e)return t;
            switch (n) {
                case 1:
                    return function (n) {
                        return t.call(e, n)
                    };
                case 3:
                    return function (n, i, o) {
                        return t.call(e, n, i, o)
                    };
                case 4:
                    return function (n, i, o, r) {
                        return t.call(e, n, i, o, r)
                    };
                case 5:
                    return function (n, i, o, r, s) {
                        return t.call(e, n, i, o, r, s)
                    }
            }
            return function () {
                return t.apply(e, arguments)
            }
        }

        var o = t("../utility/identity");
        e.exports = i
    }, {"../utility/identity": 50}],
    25: [function (t, e, n) {
        function i(t) {
            return s(function (e, n) {
                var i = -1, s = null == e ? 0 : n.length, a = s > 2 ? n[s - 2] : void 0, l = s > 2 ? n[2] : void 0, u = s > 1 ? n[s - 1] : void 0;
                for ("function" == typeof a ? (a = o(a, u, 5), s -= 2) : (a = "function" == typeof u ? u : void 0, s -= a ? 1 : 0), l && r(n[0], n[1], l) && (a = s < 3 ? void 0 : a, s = 1); ++i < s;) {
                    var c = n[i];
                    c && t(e, c, a)
                }
                return e
            })
        }

        var o = t("./bindCallback"), r = t("./isIterateeCall"), s = t("../function/restParam");
        e.exports = i
    }, {"../function/restParam": 14, "./bindCallback": 24, "./isIterateeCall": 32}],
    26: [function (t, e, n) {
        function i(t) {
            return function (e, n, i) {
                for (var r = o(e), s = i(e), a = s.length, l = t ? a : -1; t ? l-- : ++l < a;) {
                    var u = s[l];
                    if (n(r[u], u, r) === !1)break
                }
                return e
            }
        }

        var o = t("./toObject");
        e.exports = i
    }, {"./toObject": 36}],
    27: [function (t, e, n) {
        var i = t("./baseProperty"), o = i("length");
        e.exports = o
    }, {"./baseProperty": 23}],
    28: [function (t, e, n) {
        function i(t, e) {
            var n = null == t ? void 0 : t[e];
            return o(n) ? n : void 0
        }

        var o = t("../lang/isNative");
        e.exports = i
    }, {"../lang/isNative": 40}],
    29: [function (t, e, n) {
        function i(t) {
            return null != t && r(o(t))
        }

        var o = t("./getLength"), r = t("./isLength");
        e.exports = i
    }, {"./getLength": 27, "./isLength": 33}],
    30: [function (t, e, n) {
        var i = function () {
            try {
                Object({toString: 0} + "")
            } catch (t) {
                return function () {
                    return !1
                }
            }
            return function (t) {
                return "function" != typeof t.toString && "string" == typeof(t + "")
            }
        }();
        e.exports = i
    }, {}],
    31: [function (t, e, n) {
        function i(t, e) {
            return t = "number" == typeof t || o.test(t) ? +t : -1, e = null == e ? r : e, t > -1 && t % 1 == 0 && t < e
        }

        var o = /^\d+$/, r = 9007199254740991;
        e.exports = i
    }, {}],
    32: [function (t, e, n) {
        function i(t, e, n) {
            if (!s(n))return !1;
            var i = typeof e;
            if ("number" == i ? o(n) && r(e, n.length) : "string" == i && e in n) {
                var a = n[e];
                return t === t ? t === a : a !== a
            }
            return !1
        }

        var o = t("./isArrayLike"), r = t("./isIndex"), s = t("../lang/isObject");
        e.exports = i
    }, {"../lang/isObject": 41, "./isArrayLike": 29, "./isIndex": 31}],
    33: [function (t, e, n) {
        function i(t) {
            return "number" == typeof t && t > -1 && t % 1 == 0 && t <= o
        }

        var o = 9007199254740991;
        e.exports = i
    }, {}],
    34: [function (t, e, n) {
        function i(t) {
            return !!t && "object" == typeof t
        }

        e.exports = i
    }, {}],
    35: [function (t, e, n) {
        function i(t) {
            for (var e = u(t), n = e.length, i = n && t.length, c = !!i && a(i) && (r(t) || o(t) || l(t)), f = -1, d = []; ++f < n;) {
                var p = e[f];
                (c && s(p, i) || h.call(t, p)) && d.push(p)
            }
            return d
        }

        var o = t("../lang/isArguments"), r = t("../lang/isArray"), s = t("./isIndex"), a = t("./isLength"), l = t("../lang/isString"), u = t("../object/keysIn"), c = Object.prototype, h = c.hasOwnProperty;
        e.exports = i
    }, {
        "../lang/isArguments": 37,
        "../lang/isArray": 38,
        "../lang/isString": 43,
        "../object/keysIn": 47,
        "./isIndex": 31,
        "./isLength": 33
    }],
    36: [function (t, e, n) {
        function i(t) {
            if (s.unindexedChars && r(t)) {
                for (var e = -1, n = t.length, i = Object(t); ++e < n;)i[e] = t.charAt(e);
                return i
            }
            return o(t) ? t : Object(t)
        }

        var o = t("../lang/isObject"), r = t("../lang/isString"), s = t("../support");
        e.exports = i
    }, {"../lang/isObject": 41, "../lang/isString": 43, "../support": 49}],
    37: [function (t, e, n) {
        function i(t) {
            return r(t) && o(t) && a.call(t, "callee") && !l.call(t, "callee")
        }

        var o = t("../internal/isArrayLike"), r = t("../internal/isObjectLike"), s = Object.prototype, a = s.hasOwnProperty, l = s.propertyIsEnumerable;
        e.exports = i
    }, {"../internal/isArrayLike": 29, "../internal/isObjectLike": 34}],
    38: [function (t, e, n) {
        var i = t("../internal/getNative"), o = t("../internal/isLength"), r = t("../internal/isObjectLike"), s = "[object Array]", a = Object.prototype, l = a.toString, u = i(Array, "isArray"), c = u || function (t) {
                return r(t) && o(t.length) && l.call(t) == s
            };
        e.exports = c
    }, {"../internal/getNative": 28, "../internal/isLength": 33, "../internal/isObjectLike": 34}],
    39: [function (t, e, n) {
        function i(t) {
            return o(t) && a.call(t) == r
        }

        var o = t("./isObject"), r = "[object Function]", s = Object.prototype, a = s.toString;
        e.exports = i
    }, {"./isObject": 41}],
    40: [function (t, e, n) {
        function i(t) {
            return null != t && (o(t) ? h.test(u.call(t)) : s(t) && (r(t) ? h : a).test(t))
        }

        var o = t("./isFunction"), r = t("../internal/isHostObject"), s = t("../internal/isObjectLike"), a = /^\[object .+?Constructor\]$/, l = Object.prototype, u = Function.prototype.toString, c = l.hasOwnProperty, h = RegExp("^" + u.call(c).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");
        e.exports = i
    }, {"../internal/isHostObject": 30, "../internal/isObjectLike": 34, "./isFunction": 39}],
    41: [function (t, e, n) {
        function i(t) {
            var e = typeof t;
            return !!t && ("object" == e || "function" == e)
        }

        e.exports = i
    }, {}],
    42: [function (t, e, n) {
        function i(t) {
            var e;
            if (!a(t) || f.call(t) != u || s(t) || r(t) || !h.call(t, "constructor") && (e = t.constructor, "function" == typeof e && !(e instanceof e)))return !1;
            var n;
            return l.ownLast ? (o(t, function (t, e, i) {
                    return n = h.call(i, e), !1
                }), n !== !1) : (o(t, function (t, e) {
                    n = e
                }), void 0 === n || h.call(t, n))
        }

        var o = t("../internal/baseForIn"), r = t("./isArguments"), s = t("../internal/isHostObject"), a = t("../internal/isObjectLike"), l = t("../support"), u = "[object Object]", c = Object.prototype, h = c.hasOwnProperty, f = c.toString;
        e.exports = i
    }, {
        "../internal/baseForIn": 20,
        "../internal/isHostObject": 30,
        "../internal/isObjectLike": 34,
        "../support": 49,
        "./isArguments": 37
    }],
    43: [function (t, e, n) {
        function i(t) {
            return "string" == typeof t || o(t) && a.call(t) == r
        }

        var o = t("../internal/isObjectLike"), r = "[object String]", s = Object.prototype, a = s.toString;
        e.exports = i
    }, {"../internal/isObjectLike": 34}],
    44: [function (t, e, n) {
        function i(t) {
            return r(t) && o(t.length) && !!E[M.call(t)]
        }

        var o = t("../internal/isLength"), r = t("../internal/isObjectLike"), s = "[object Arguments]", a = "[object Array]", l = "[object Boolean]", u = "[object Date]", c = "[object Error]", h = "[object Function]", f = "[object Map]", d = "[object Number]", p = "[object Object]", y = "[object RegExp]", v = "[object Set]", m = "[object String]", g = "[object WeakMap]", b = "[object ArrayBuffer]", _ = "[object Float32Array]", w = "[object Float64Array]", k = "[object Int8Array]", C = "[object Int16Array]", j = "[object Int32Array]", T = "[object Uint8Array]", S = "[object Uint8ClampedArray]", x = "[object Uint16Array]", O = "[object Uint32Array]", E = {};
        E[_] = E[w] = E[k] = E[C] = E[j] = E[T] = E[S] = E[x] = E[O] = !0, E[s] = E[a] = E[b] = E[l] = E[u] = E[c] = E[h] = E[f] = E[d] = E[p] = E[y] = E[v] = E[m] = E[g] = !1;
        var P = Object.prototype, M = P.toString;
        e.exports = i
    }, {"../internal/isLength": 33, "../internal/isObjectLike": 34}],
    45: [function (t, e, n) {
        function i(t) {
            return o(t, r(t))
        }

        var o = t("../internal/baseCopy"), r = t("../object/keysIn");
        e.exports = i
    }, {"../internal/baseCopy": 18, "../object/keysIn": 47}],
    46: [function (t, e, n) {
        var i = t("../internal/getNative"), o = t("../internal/isArrayLike"), r = t("../lang/isObject"), s = t("../internal/shimKeys"), a = t("../support"), l = i(Object, "keys"), u = l ? function (t) {
                var e = null == t ? void 0 : t.constructor;
                return "function" == typeof e && e.prototype === t || ("function" == typeof t ? a.enumPrototypes : o(t)) ? s(t) : r(t) ? l(t) : []
            } : s;
        e.exports = u
    }, {
        "../internal/getNative": 28,
        "../internal/isArrayLike": 29,
        "../internal/shimKeys": 35,
        "../lang/isObject": 41,
        "../support": 49
    }],
    47: [function (t, e, n) {
        function i(t) {
            if (null == t)return [];
            c(t) || (t = Object(t));
            var e = t.length;
            e = e && u(e) && (s(t) || r(t) || h(t)) && e || 0;
            for (var n = t.constructor, i = -1, o = a(n) && n.prototype || j, d = o === t, p = Array(e), y = e > 0, m = f.enumErrorProps && (t === C || t instanceof Error), g = f.enumPrototypes && a(t); ++i < e;)p[i] = i + "";
            for (var _ in t)g && "prototype" == _ || m && ("message" == _ || "name" == _) || y && l(_, e) || "constructor" == _ && (d || !S.call(t, _)) || p.push(_);
            if (f.nonEnumShadows && t !== j) {
                var E = t === T ? w : t === C ? v : x.call(t), P = O[E] || O[b];
                for (E == b && (o = j), e = k.length; e--;) {
                    _ = k[e];
                    var M = P[_];
                    d && M || (M ? !S.call(t, _) : t[_] === o[_]) || p.push(_)
                }
            }
            return p
        }

        var o = t("../internal/arrayEach"), r = t("../lang/isArguments"), s = t("../lang/isArray"), a = t("../lang/isFunction"), l = t("../internal/isIndex"), u = t("../internal/isLength"), c = t("../lang/isObject"), h = t("../lang/isString"), f = t("../support"), d = "[object Array]", p = "[object Boolean]", y = "[object Date]", v = "[object Error]", m = "[object Function]", g = "[object Number]", b = "[object Object]", _ = "[object RegExp]", w = "[object String]", k = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"], C = Error.prototype, j = Object.prototype, T = String.prototype, S = j.hasOwnProperty, x = j.toString, O = {};
        O[d] = O[y] = O[g] = {
            constructor: !0,
            toLocaleString: !0,
            toString: !0,
            valueOf: !0
        }, O[p] = O[w] = {constructor: !0, toString: !0, valueOf: !0}, O[v] = O[m] = O[_] = {
            constructor: !0,
            toString: !0
        }, O[b] = {constructor: !0}, o(k, function (t) {
            for (var e in O)if (S.call(O, e)) {
                var n = O[e];
                n[t] = S.call(n, t)
            }
        }), e.exports = i
    }, {
        "../internal/arrayEach": 17,
        "../internal/isIndex": 31,
        "../internal/isLength": 33,
        "../lang/isArguments": 37,
        "../lang/isArray": 38,
        "../lang/isFunction": 39,
        "../lang/isObject": 41,
        "../lang/isString": 43,
        "../support": 49
    }],
    48: [function (t, e, n) {
        var i = t("../internal/baseMerge"), o = t("../internal/createAssigner"), r = o(i);
        e.exports = r
    }, {"../internal/baseMerge": 21, "../internal/createAssigner": 25}],
    49: [function (t, e, n) {
        var i = Array.prototype, o = Error.prototype, r = Object.prototype, s = r.propertyIsEnumerable, a = i.splice, l = {};
        !function (t) {
            var e = function () {
                this.x = t
            }, n = {0: t, length: t}, i = [];
            e.prototype = {valueOf: t, y: t};
            for (var r in new e)i.push(r);
            l.enumErrorProps = s.call(o, "message") || s.call(o, "name"), l.enumPrototypes = s.call(e, "prototype"), l.nonEnumShadows = !/valueOf/.test(i), l.ownLast = "x" != i[0], l.spliceObjects = (a.call(n, 0, 1), !n[0]), l.unindexedChars = "x"[0] + Object("x")[0] != "xx"
        }(1, 0), e.exports = l
    }, {}],
    50: [function (t, e, n) {
        function i(t) {
            return t
        }

        e.exports = i
    }, {}],
    51: [function (t, e, n) {
        !function (t, i) {
            "object" == typeof n && "undefined" != typeof e ? e.exports = i() : "function" == typeof define && define.amd ? define(i) : t.moment = i()
        }(this, function () {
            "use strict";
            function n() {
                return mi.apply(null, arguments)
            }

            function i(t) {
                mi = t
            }

            function o(t) {
                return t instanceof Array || "[object Array]" === Object.prototype.toString.call(t)
            }

            function r(t) {
                return null != t && "[object Object]" === Object.prototype.toString.call(t)
            }

            function s(t) {
                var e;
                for (e in t)return !1;
                return !0
            }

            function a(t) {
                return "number" == typeof value || "[object Number]" === Object.prototype.toString.call(t)
            }

            function l(t) {
                return t instanceof Date || "[object Date]" === Object.prototype.toString.call(t)
            }

            function u(t, e) {
                var n, i = [];
                for (n = 0; n < t.length; ++n)i.push(e(t[n], n));
                return i
            }

            function c(t, e) {
                return Object.prototype.hasOwnProperty.call(t, e)
            }

            function h(t, e) {
                for (var n in e)c(e, n) && (t[n] = e[n]);
                return c(e, "toString") && (t.toString = e.toString), c(e, "valueOf") && (t.valueOf = e.valueOf), t
            }

            function f(t, e, n, i) {
                return be(t, e, n, i, !0).utc()
            }

            function d() {
                return {
                    empty: !1,
                    unusedTokens: [],
                    unusedInput: [],
                    overflow: -2,
                    charsLeftOver: 0,
                    nullInput: !1,
                    invalidMonth: null,
                    invalidFormat: !1,
                    userInvalidated: !1,
                    iso: !1,
                    parsedDateParts: [],
                    meridiem: null
                }
            }

            function p(t) {
                return null == t._pf && (t._pf = d()), t._pf
            }

            function y(t) {
                if (null == t._isValid) {
                    var e = p(t), n = bi.call(e.parsedDateParts, function (t) {
                        return null != t
                    }), i = !isNaN(t._d.getTime()) && e.overflow < 0 && !e.empty && !e.invalidMonth && !e.invalidWeekday && !e.nullInput && !e.invalidFormat && !e.userInvalidated && (!e.meridiem || e.meridiem && n);
                    if (t._strict && (i = i && 0 === e.charsLeftOver && 0 === e.unusedTokens.length && void 0 === e.bigHour), null != Object.isFrozen && Object.isFrozen(t))return i;
                    t._isValid = i
                }
                return t._isValid
            }

            function v(t) {
                var e = f(NaN);
                return null != t ? h(p(e), t) : p(e).userInvalidated = !0, e
            }

            function m(t) {
                return void 0 === t
            }

            function g(t, e) {
                var n, i, o;
                if (m(e._isAMomentObject) || (t._isAMomentObject = e._isAMomentObject), m(e._i) || (t._i = e._i), m(e._f) || (t._f = e._f), m(e._l) || (t._l = e._l), m(e._strict) || (t._strict = e._strict), m(e._tzm) || (t._tzm = e._tzm), m(e._isUTC) || (t._isUTC = e._isUTC), m(e._offset) || (t._offset = e._offset), m(e._pf) || (t._pf = p(e)), m(e._locale) || (t._locale = e._locale), _i.length > 0)for (n in _i)i = _i[n], o = e[i], m(o) || (t[i] = o);
                return t
            }

            function b(t) {
                g(this, t), this._d = new Date(null != t._d ? t._d.getTime() : NaN), wi === !1 && (wi = !0, n.updateOffset(this), wi = !1)
            }

            function _(t) {
                return t instanceof b || null != t && null != t._isAMomentObject
            }

            function w(t) {
                return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
            }

            function k(t) {
                var e = +t, n = 0;
                return 0 !== e && isFinite(e) && (n = w(e)), n
            }

            function C(t, e, n) {
                var i, o = Math.min(t.length, e.length), r = Math.abs(t.length - e.length), s = 0;
                for (i = 0; i < o; i++)(n && t[i] !== e[i] || !n && k(t[i]) !== k(e[i])) && s++;
                return s + r
            }

            function j(t) {
                n.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn
            }

            function T(t, e) {
                var i = !0;
                return h(function () {
                    if (null != n.deprecationHandler && n.deprecationHandler(null, t), i) {
                        for (var o, r = [], s = 0; s < arguments.length; s++) {
                            if (o = "", "object" == typeof arguments[s]) {
                                o += "\n[" + s + "] ";
                                for (var a in arguments[0])o += a + ": " + arguments[0][a] + ", ";
                                o = o.slice(0, -2)
                            } else o = arguments[s];
                            r.push(o)
                        }
                        j(t + "\nArguments: " + Array.prototype.slice.call(r).join("") + "\n" + (new Error).stack), i = !1
                    }
                    return e.apply(this, arguments)
                }, e)
            }

            function S(t, e) {
                null != n.deprecationHandler && n.deprecationHandler(t, e), ki[t] || (j(e), ki[t] = !0)
            }

            function x(t) {
                return t instanceof Function || "[object Function]" === Object.prototype.toString.call(t)
            }

            function O(t) {
                var e, n;
                for (n in t)e = t[n], x(e) ? this[n] = e : this["_" + n] = e;
                this._config = t, this._ordinalParseLenient = new RegExp(this._ordinalParse.source + "|" + /\d{1,2}/.source)
            }

            function E(t, e) {
                var n, i = h({}, t);
                for (n in e)c(e, n) && (r(t[n]) && r(e[n]) ? (i[n] = {}, h(i[n], t[n]), h(i[n], e[n])) : null != e[n] ? i[n] = e[n] : delete i[n]);
                for (n in t)c(t, n) && !c(e, n) && r(t[n]) && (i[n] = h({}, i[n]));
                return i
            }

            function P(t) {
                null != t && this.set(t)
            }

            function M(t, e, n) {
                var i = this._calendar[t] || this._calendar.sameElse;
                return x(i) ? i.call(e, n) : i
            }

            function A(t) {
                var e = this._longDateFormat[t], n = this._longDateFormat[t.toUpperCase()];
                return e || !n ? e : (this._longDateFormat[t] = n.replace(/MMMM|MM|DD|dddd/g, function (t) {
                        return t.slice(1)
                    }), this._longDateFormat[t])
            }

            function L() {
                return this._invalidDate
            }

            function D(t) {
                return this._ordinal.replace("%d", t)
            }

            function F(t, e, n, i) {
                var o = this._relativeTime[n];
                return x(o) ? o(t, e, n, i) : o.replace(/%d/i, t)
            }

            function R(t, e) {
                var n = this._relativeTime[t > 0 ? "future" : "past"];
                return x(n) ? n(e) : n.replace(/%s/i, e)
            }

            function I(t, e) {
                var n = t.toLowerCase();
                Ai[n] = Ai[n + "s"] = Ai[e] = t
            }

            function N(t) {
                return "string" == typeof t ? Ai[t] || Ai[t.toLowerCase()] : void 0
            }

            function $(t) {
                var e, n, i = {};
                for (n in t)c(t, n) && (e = N(n), e && (i[e] = t[n]));
                return i
            }

            function B(t, e) {
                Li[t] = e
            }

            function W(t) {
                var e = [];
                for (var n in t)e.push({unit: n, priority: Li[n]});
                return e.sort(function (t, e) {
                    return t.priority - e.priority
                }), e
            }

            function H(t, e) {
                return function (i) {
                    return null != i ? (Y(this, t, i), n.updateOffset(this, e), this) : V(this, t)
                }
            }

            function V(t, e) {
                return t.isValid() ? t._d["get" + (t._isUTC ? "UTC" : "") + e]() : NaN
            }

            function Y(t, e, n) {
                t.isValid() && t._d["set" + (t._isUTC ? "UTC" : "") + e](n)
            }

            function z(t) {
                return t = N(t), x(this[t]) ? this[t]() : this
            }

            function U(t, e) {
                if ("object" == typeof t) {
                    t = $(t);
                    for (var n = W(t), i = 0; i < n.length; i++)this[n[i].unit](t[n[i].unit])
                } else if (t = N(t), x(this[t]))return this[t](e);
                return this
            }

            function G(t, e, n) {
                var i = "" + Math.abs(t), o = e - i.length, r = t >= 0;
                return (r ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, o)).toString().substr(1) + i
            }

            function q(t, e, n, i) {
                var o = i;
                "string" == typeof i && (o = function () {
                    return this[i]()
                }), t && (Ii[t] = o), e && (Ii[e[0]] = function () {
                    return G(o.apply(this, arguments), e[1], e[2])
                }), n && (Ii[n] = function () {
                    return this.localeData().ordinal(o.apply(this, arguments), t)
                })
            }

            function X(t) {
                return t.match(/\[[\s\S]/) ? t.replace(/^\[|\]$/g, "") : t.replace(/\\/g, "")
            }

            function K(t) {
                var e, n, i = t.match(Di);
                for (e = 0, n = i.length; e < n; e++)Ii[i[e]] ? i[e] = Ii[i[e]] : i[e] = X(i[e]);
                return function (e) {
                    var o, r = "";
                    for (o = 0; o < n; o++)r += i[o] instanceof Function ? i[o].call(e, t) : i[o];
                    return r
                }
            }

            function J(t, e) {
                return t.isValid() ? (e = Z(e, t.localeData()), Ri[e] = Ri[e] || K(e), Ri[e](t)) : t.localeData().invalidDate()
            }

            function Z(t, e) {
                function n(t) {
                    return e.longDateFormat(t) || t
                }

                var i = 5;
                for (Fi.lastIndex = 0; i >= 0 && Fi.test(t);)t = t.replace(Fi, n), Fi.lastIndex = 0, i -= 1;
                return t
            }

            function Q(t, e, n) {
                eo[t] = x(e) ? e : function (t, i) {
                        return t && n ? n : e
                    }
            }

            function tt(t, e) {
                return c(eo, t) ? eo[t](e._strict, e._locale) : new RegExp(et(t))
            }

            function et(t) {
                return nt(t.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (t, e, n, i, o) {
                    return e || n || i || o
                }))
            }

            function nt(t) {
                return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
            }

            function it(t, e) {
                var n, i = e;
                for ("string" == typeof t && (t = [t]), a(e) && (i = function (t, n) {
                    n[e] = k(t)
                }), n = 0; n < t.length; n++)no[t[n]] = i
            }

            function ot(t, e) {
                it(t, function (t, n, i, o) {
                    i._w = i._w || {}, e(t, i._w, i, o)
                })
            }

            function rt(t, e, n) {
                null != e && c(no, t) && no[t](e, n._a, n, t)
            }

            function st(t, e) {
                return new Date(Date.UTC(t, e + 1, 0)).getUTCDate()
            }

            function at(t, e) {
                return t ? o(this._months) ? this._months[t.month()] : this._months[(this._months.isFormat || po).test(e) ? "format" : "standalone"][t.month()] : this._months
            }

            function lt(t, e) {
                return t ? o(this._monthsShort) ? this._monthsShort[t.month()] : this._monthsShort[po.test(e) ? "format" : "standalone"][t.month()] : this._monthsShort
            }

            function ut(t, e, n) {
                var i, o, r, s = t.toLocaleLowerCase();
                if (!this._monthsParse)for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], i = 0; i < 12; ++i)r = f([2e3, i]), this._shortMonthsParse[i] = this.monthsShort(r, "").toLocaleLowerCase(), this._longMonthsParse[i] = this.months(r, "").toLocaleLowerCase();
                return n ? "MMM" === e ? (o = fo.call(this._shortMonthsParse, s), o !== -1 ? o : null) : (o = fo.call(this._longMonthsParse, s), o !== -1 ? o : null) : "MMM" === e ? (o = fo.call(this._shortMonthsParse, s), o !== -1 ? o : (o = fo.call(this._longMonthsParse, s), o !== -1 ? o : null)) : (o = fo.call(this._longMonthsParse, s), o !== -1 ? o : (o = fo.call(this._shortMonthsParse, s), o !== -1 ? o : null))
            }

            function ct(t, e, n) {
                var i, o, r;
                if (this._monthsParseExact)return ut.call(this, t, e, n);
                for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), i = 0; i < 12; i++) {
                    if (o = f([2e3, i]), n && !this._longMonthsParse[i] && (this._longMonthsParse[i] = new RegExp("^" + this.months(o, "").replace(".", "") + "$", "i"), this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(o, "").replace(".", "") + "$", "i")), n || this._monthsParse[i] || (r = "^" + this.months(o, "") + "|^" + this.monthsShort(o, ""), this._monthsParse[i] = new RegExp(r.replace(".", ""), "i")), n && "MMMM" === e && this._longMonthsParse[i].test(t))return i;
                    if (n && "MMM" === e && this._shortMonthsParse[i].test(t))return i;
                    if (!n && this._monthsParse[i].test(t))return i
                }
            }

            function ht(t, e) {
                var n;
                if (!t.isValid())return t;
                if ("string" == typeof e)if (/^\d+$/.test(e)) e = k(e); else if (e = t.localeData().monthsParse(e), !a(e))return t;
                return n = Math.min(t.date(), st(t.year(), e)), t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n), t
            }

            function ft(t) {
                return null != t ? (ht(this, t), n.updateOffset(this, !0), this) : V(this, "Month")
            }

            function dt() {
                return st(this.year(), this.month())
            }

            function pt(t) {
                return this._monthsParseExact ? (c(this, "_monthsRegex") || vt.call(this), t ? this._monthsShortStrictRegex : this._monthsShortRegex) : (c(this, "_monthsShortRegex") || (this._monthsShortRegex = mo), this._monthsShortStrictRegex && t ? this._monthsShortStrictRegex : this._monthsShortRegex)
            }

            function yt(t) {
                return this._monthsParseExact ? (c(this, "_monthsRegex") || vt.call(this), t ? this._monthsStrictRegex : this._monthsRegex) : (c(this, "_monthsRegex") || (this._monthsRegex = go), this._monthsStrictRegex && t ? this._monthsStrictRegex : this._monthsRegex)
            }

            function vt() {
                function t(t, e) {
                    return e.length - t.length
                }

                var e, n, i = [], o = [], r = [];
                for (e = 0; e < 12; e++)n = f([2e3, e]), i.push(this.monthsShort(n, "")), o.push(this.months(n, "")), r.push(this.months(n, "")), r.push(this.monthsShort(n, ""));
                for (i.sort(t), o.sort(t), r.sort(t), e = 0; e < 12; e++)i[e] = nt(i[e]), o[e] = nt(o[e]);
                for (e = 0; e < 24; e++)r[e] = nt(r[e]);
                this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + i.join("|") + ")", "i")
            }

            function mt(t) {
                return gt(t) ? 366 : 365
            }

            function gt(t) {
                return t % 4 === 0 && t % 100 !== 0 || t % 400 === 0
            }

            function bt() {
                return gt(this.year())
            }

            function _t(t, e, n, i, o, r, s) {
                var a = new Date(t, e, n, i, o, r, s);
                return t < 100 && t >= 0 && isFinite(a.getFullYear()) && a.setFullYear(t), a
            }

            function wt(t) {
                var e = new Date(Date.UTC.apply(null, arguments));
                return t < 100 && t >= 0 && isFinite(e.getUTCFullYear()) && e.setUTCFullYear(t), e
            }

            function kt(t, e, n) {
                var i = 7 + e - n, o = (7 + wt(t, 0, i).getUTCDay() - e) % 7;
                return -o + i - 1
            }

            function Ct(t, e, n, i, o) {
                var r, s, a = (7 + n - i) % 7, l = kt(t, i, o), u = 1 + 7 * (e - 1) + a + l;
                return u <= 0 ? (r = t - 1, s = mt(r) + u): u
            >
                mt(t) ? (r = t + 1, s = u - mt(t)) : (r = t, s = u), {year: r, dayOfYear: s}
            }

            function jt(t, e, n) {
                var i, o, r = kt(t.year(), e, n), s = Math.floor((t.dayOfYear() - r - 1) / 7) + 1;
                return s < 1 ? (o = t.year() - 1, i = s + Tt(o, e, n)): s
            >
                Tt(t.year(), e, n) ? (i = s - Tt(t.year(), e, n), o = t.year() + 1) : (o = t.year(), i = s), {
                    week: i,
                    year: o
                }
            }

            function Tt(t, e, n) {
                var i = kt(t, e, n), o = kt(t + 1, e, n);
                return (mt(t) - i + o) / 7
            }

            function St(t) {
                return jt(t, this._week.dow, this._week.doy).week
            }

            function xt() {
                return this._week.dow
            }

            function Ot() {
                return this._week.doy
            }

            function Et(t) {
                var e = this.localeData().week(this);
                return null == t ? e : this.add(7 * (t - e), "d")
            }

            function Pt(t) {
                var e = jt(this, 1, 4).week;
                return null == t ? e : this.add(7 * (t - e), "d")
            }

            function Mt(t, e) {
                return "string" != typeof t ? t : isNaN(t) ? (t = e.weekdaysParse(t), "number" == typeof t ? t : null) : parseInt(t, 10)
            }

            function At(t, e) {
                return "string" == typeof t ? e.weekdaysParse(t) % 7 || 7 : isNaN(t) ? null : t
            }

            function Lt(t, e) {
                return t ? o(this._weekdays) ? this._weekdays[t.day()] : this._weekdays[this._weekdays.isFormat.test(e) ? "format" : "standalone"][t.day()] : this._weekdays
            }

            function Dt(t) {
                return t ? this._weekdaysShort[t.day()] : this._weekdaysShort
            }

            function Ft(t) {
                return t ? this._weekdaysMin[t.day()] : this._weekdaysMin
            }

            function Rt(t, e, n) {
                var i, o, r, s = t.toLocaleLowerCase();
                if (!this._weekdaysParse)for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], i = 0; i < 7; ++i)r = f([2e3, 1]).day(i), this._minWeekdaysParse[i] = this.weekdaysMin(r, "").toLocaleLowerCase(), this._shortWeekdaysParse[i] = this.weekdaysShort(r, "").toLocaleLowerCase(), this._weekdaysParse[i] = this.weekdays(r, "").toLocaleLowerCase();
                return n ? "dddd" === e ? (o = fo.call(this._weekdaysParse, s), o !== -1 ? o : null) : "ddd" === e ? (o = fo.call(this._shortWeekdaysParse, s), o !== -1 ? o : null) : (o = fo.call(this._minWeekdaysParse, s), o !== -1 ? o : null) : "dddd" === e ? (o = fo.call(this._weekdaysParse, s), o !== -1 ? o : (o = fo.call(this._shortWeekdaysParse, s), o !== -1 ? o : (o = fo.call(this._minWeekdaysParse, s), o !== -1 ? o : null))) : "ddd" === e ? (o = fo.call(this._shortWeekdaysParse, s), o !== -1 ? o : (o = fo.call(this._weekdaysParse, s), o !== -1 ? o : (o = fo.call(this._minWeekdaysParse, s), o !== -1 ? o : null))) : (o = fo.call(this._minWeekdaysParse, s), o !== -1 ? o : (o = fo.call(this._weekdaysParse, s), o !== -1 ? o : (o = fo.call(this._shortWeekdaysParse, s), o !== -1 ? o : null)))
            }

            function It(t, e, n) {
                var i, o, r;
                if (this._weekdaysParseExact)return Rt.call(this, t, e, n);
                for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), i = 0; i < 7; i++) {
                    if (o = f([2e3, 1]).day(i), n && !this._fullWeekdaysParse[i] && (this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(o, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(o, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(o, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[i] || (r = "^" + this.weekdays(o, "") + "|^" + this.weekdaysShort(o, "") + "|^" + this.weekdaysMin(o, ""), this._weekdaysParse[i] = new RegExp(r.replace(".", ""), "i")), n && "dddd" === e && this._fullWeekdaysParse[i].test(t))return i;
                    if (n && "ddd" === e && this._shortWeekdaysParse[i].test(t))return i;
                    if (n && "dd" === e && this._minWeekdaysParse[i].test(t))return i;
                    if (!n && this._weekdaysParse[i].test(t))return i
                }
            }

            function Nt(t) {
                if (!this.isValid())return null != t ? this : NaN;
                var e = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
                return null != t ? (t = Mt(t, this.localeData()), this.add(t - e, "d")) : e
            }

            function $t(t) {
                if (!this.isValid())return null != t ? this : NaN;
                var e = (this.day() + 7 - this.localeData()._week.dow) % 7;
                return null == t ? e : this.add(t - e, "d")
            }

            function Bt(t) {
                if (!this.isValid())return null != t ? this : NaN;
                if (null != t) {
                    var e = At(t, this.localeData());
                    return this.day(this.day() % 7 ? e : e - 7)
                }
                return this.day() || 7
            }

            function Wt(t) {
                return this._weekdaysParseExact ? (c(this, "_weekdaysRegex") || Yt.call(this), t ? this._weekdaysStrictRegex : this._weekdaysRegex) : (c(this, "_weekdaysRegex") || (this._weekdaysRegex = jo), this._weekdaysStrictRegex && t ? this._weekdaysStrictRegex : this._weekdaysRegex)
            }

            function Ht(t) {
                return this._weekdaysParseExact ? (c(this, "_weekdaysRegex") || Yt.call(this), t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (c(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = To), this._weekdaysShortStrictRegex && t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
            }

            function Vt(t) {
                return this._weekdaysParseExact ? (c(this, "_weekdaysRegex") || Yt.call(this), t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (c(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = So), this._weekdaysMinStrictRegex && t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
            }

            function Yt() {
                function t(t, e) {
                    return e.length - t.length
                }

                var e, n, i, o, r, s = [], a = [], l = [], u = [];
                for (e = 0; e < 7; e++)n = f([2e3, 1]).day(e), i = this.weekdaysMin(n, ""), o = this.weekdaysShort(n, ""), r = this.weekdays(n, ""), s.push(i), a.push(o), l.push(r), u.push(i), u.push(o), u.push(r);
                for (s.sort(t), a.sort(t), l.sort(t), u.sort(t), e = 0; e < 7; e++)a[e] = nt(a[e]), l[e] = nt(l[e]), u[e] = nt(u[e]);
                this._weekdaysRegex = new RegExp("^(" + u.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + l.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + s.join("|") + ")", "i")
            }

            function zt() {
                return this.hours() % 12 || 12
            }

            function Ut() {
                return this.hours() || 24
            }

            function Gt(t, e) {
                q(t, 0, 0, function () {
                    return this.localeData().meridiem(this.hours(), this.minutes(), e)
                })
            }

            function qt(t, e) {
                return e._meridiemParse
            }

            function Xt(t) {
                return "p" === (t + "").toLowerCase().charAt(0)
            }

            function Kt(t, e, n) {
                return t > 11 ? n ? "pm" : "PM" : n ? "am" : "AM"
            }

            function Jt(t) {
                return t ? t.toLowerCase().replace("_", "-") : t
            }

            function Zt(t) {
                for (var e, n, i, o, r = 0; r < t.length;) {
                    for (o = Jt(t[r]).split("-"), e = o.length, n = Jt(t[r + 1]), n = n ? n.split("-") : null; e > 0;) {
                        if (i = Qt(o.slice(0, e).join("-")))return i;
                        if (n && n.length >= e && C(o, n, !0) >= e - 1)break;
                        e--
                    }
                    r++
                }
                return null
            }

            function Qt(n) {
                var i = null;
                if (!Mo[n] && "undefined" != typeof e && e && e.exports)try {
                    i = xo._abbr, t("./locale/" + n), te(i)
                } catch (o) {
                }
                return Mo[n]
            }

            function te(t, e) {
                var n;
                return t && (n = m(e) ? ie(t) : ee(t, e), n && (xo = n)), xo._abbr
            }

            function ee(t, e) {
                if (null !== e) {
                    var n = Po;
                    if (e.abbr = t, null != Mo[t]) S("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), n = Mo[t]._config; else if (null != e.parentLocale) {
                        if (null == Mo[e.parentLocale])return Ao[e.parentLocale] || (Ao[e.parentLocale] = []), Ao[e.parentLocale].push({
                            name: t,
                            config: e
                        }), null;
                        n = Mo[e.parentLocale]._config
                    }
                    return Mo[t] = new P(E(n, e)), Ao[t] && Ao[t].forEach(function (t) {
                        ee(t.name, t.config)
                    }), te(t), Mo[t]
                }
                return delete Mo[t], null
            }

            function ne(t, e) {
                if (null != e) {
                    var n, i = Po;
                    null != Mo[t] && (i = Mo[t]._config), e = E(i, e), n = new P(e), n.parentLocale = Mo[t], Mo[t] = n, te(t)
                } else null != Mo[t] && (null != Mo[t].parentLocale ? Mo[t] = Mo[t].parentLocale : null != Mo[t] && delete Mo[t]);
                return Mo[t]
            }

            function ie(t) {
                var e;
                if (t && t._locale && t._locale._abbr && (t = t._locale._abbr), !t)return xo;
                if (!o(t)) {
                    if (e = Qt(t))return e;
                    t = [t]
                }
                return Zt(t)
            }

            function oe() {
                return Ti(Mo)
            }

            function re(t) {
                var e, n = t._a;
                return n && p(t).overflow === -2 && (e = n[oo] < 0 || n[oo] > 11 ? oo : n[ro] < 1 || n[ro] > st(n[io], n[oo]) ? ro : n[so] < 0 || n[so] > 24 || 24 === n[so] && (0 !== n[ao] || 0 !== n[lo] || 0 !== n[uo]) ? so : n[ao] < 0 || n[ao] > 59 ? ao : n[lo] < 0 || n[lo] > 59 ? lo : n[uo] < 0 || n[uo] > 999 ? uo : -1, p(t)._overflowDayOfYear && (e < io || e > ro) && (e = ro), p(t)._overflowWeeks && e === -1 && (e = co), p(t)._overflowWeekday && e === -1 && (e = ho), p(t).overflow = e), t
            }

            function se(t) {
                var e, n, i, o, r, s, a = t._i, l = Lo.exec(a) || Do.exec(a);
                if (l) {
                    for (p(t).iso = !0, e = 0, n = Ro.length; e < n; e++)if (Ro[e][1].exec(l[1])) {
                        o = Ro[e][0], i = Ro[e][2] !== !1;
                        break
                    }
                    if (null == o)return void(t._isValid = !1);
                    if (l[3]) {
                        for (e = 0, n = Io.length; e < n; e++)if (Io[e][1].exec(l[3])) {
                            r = (l[2] || " ") + Io[e][0];
                            break
                        }
                        if (null == r)return void(t._isValid = !1)
                    }
                    if (!i && null != r)return void(t._isValid = !1);
                    if (l[4]) {
                        if (!Fo.exec(l[4]))return void(t._isValid = !1);
                        s = "Z"
                    }
                    t._f = o + (r || "") + (s || ""), fe(t)
                } else t._isValid = !1
            }

            function ae(t) {
                var e = No.exec(t._i);
                return null !== e ? void(t._d = new Date((+e[1]))) : (se(t), void(t._isValid === !1 && (delete t._isValid, n.createFromInputFallback(t))));
            }

            function le(t, e, n) {
                return null != t ? t : null != e ? e : n
            }

            function ue(t) {
                var e = new Date(n.now());
                return t._useUTC ? [e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()] : [e.getFullYear(), e.getMonth(), e.getDate()]
            }

            function ce(t) {
                var e, n, i, o, r = [];
                if (!t._d) {
                    for (i = ue(t), t._w && null == t._a[ro] && null == t._a[oo] && he(t), t._dayOfYear && (o = le(t._a[io], i[io]), t._dayOfYear > mt(o) && (p(t)._overflowDayOfYear = !0), n = wt(o, 0, t._dayOfYear), t._a[oo] = n.getUTCMonth(), t._a[ro] = n.getUTCDate()), e = 0; e < 3 && null == t._a[e]; ++e)t._a[e] = r[e] = i[e];
                    for (; e < 7; e++)t._a[e] = r[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e];
                    24 === t._a[so] && 0 === t._a[ao] && 0 === t._a[lo] && 0 === t._a[uo] && (t._nextDay = !0, t._a[so] = 0), t._d = (t._useUTC ? wt : _t).apply(null, r), null != t._tzm && t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), t._nextDay && (t._a[so] = 24)
                }
            }

            function he(t) {
                var e, n, i, o, r, s, a, l;
                if (e = t._w, null != e.GG || null != e.W || null != e.E) r = 1, s = 4, n = le(e.GG, t._a[io], jt(_e(), 1, 4).year), i = le(e.W, 1), o = le(e.E, 1), (o < 1 || o > 7) && (l = !0); else {
                    r = t._locale._week.dow, s = t._locale._week.doy;
                    var u = jt(_e(), r, s);
                    n = le(e.gg, t._a[io], u.year), i = le(e.w, u.week), null != e.d ? (o = e.d, (o < 0 || o > 6) && (l = !0)) : null != e.e ? (o = e.e + r, (e.e < 0 || e.e > 6) && (l = !0)) : o = r
                }
                i < 1 || i > Tt(n, r, s) ? p(t)._overflowWeeks = !0 : null != l ? p(t)._overflowWeekday = !0 : (a = Ct(n, i, o, r, s), t._a[io] = a.year, t._dayOfYear = a.dayOfYear)
            }

            function fe(t) {
                if (t._f === n.ISO_8601)return void se(t);
                t._a = [], p(t).empty = !0;
                var e, i, o, r, s, a = "" + t._i, l = a.length, u = 0;
                for (o = Z(t._f, t._locale).match(Di) || [], e = 0; e < o.length; e++)r = o[e], i = (a.match(tt(r, t)) || [])[0], i && (s = a.substr(0, a.indexOf(i)), s.length > 0 && p(t).unusedInput.push(s), a = a.slice(a.indexOf(i) + i.length), u += i.length), Ii[r] ? (i ? p(t).empty = !1 : p(t).unusedTokens.push(r), rt(r, i, t)) : t._strict && !i && p(t).unusedTokens.push(r);
                p(t).charsLeftOver = l - u, a.length > 0 && p(t).unusedInput.push(a), t._a[so] <= 12 && p(t).bigHour === !0 && t._a[so] > 0 && (p(t).bigHour = void 0), p(t).parsedDateParts = t._a.slice(0), p(t).meridiem = t._meridiem, t._a[so] = de(t._locale, t._a[so], t._meridiem), ce(t), re(t)
            }

            function de(t, e, n) {
                var i;
                return null == n ? e : null != t.meridiemHour ? t.meridiemHour(e, n) : null != t.isPM ? (i = t.isPM(n), i && e < 12 && (e += 12), i || 12 !== e || (e = 0), e) : e
            }

            function pe(t) {
                var e, n, i, o, r;
                if (0 === t._f.length)return p(t).invalidFormat = !0, void(t._d = new Date(NaN));
                for (o = 0; o < t._f.length; o++)r = 0, e = g({}, t), null != t._useUTC && (e._useUTC = t._useUTC), e._f = t._f[o], fe(e), y(e) && (r += p(e).charsLeftOver, r += 10 * p(e).unusedTokens.length, p(e).score = r, (null == i || r < i) && (i = r, n = e));
                h(t, n || e)
            }

            function ye(t) {
                if (!t._d) {
                    var e = $(t._i);
                    t._a = u([e.year, e.month, e.day || e.date, e.hour, e.minute, e.second, e.millisecond], function (t) {
                        return t && parseInt(t, 10)
                    }), ce(t)
                }
            }

            function ve(t) {
                var e = new b(re(me(t)));
                return e._nextDay && (e.add(1, "d"), e._nextDay = void 0), e
            }

            function me(t) {
                var e = t._i, n = t._f;
                return t._locale = t._locale || ie(t._l), null === e || void 0 === n && "" === e ? v({nullInput: !0}) : ("string" == typeof e && (t._i = e = t._locale.preparse(e)), _(e) ? new b(re(e)) : (l(e) ? t._d = e : o(n) ? pe(t) : n ? fe(t) : ge(t), y(t) || (t._d = null), t))
            }

            function ge(t) {
                var e = t._i;
                void 0 === e ? t._d = new Date(n.now()) : l(e) ? t._d = new Date(e.valueOf()) : "string" == typeof e ? ae(t) : o(e) ? (t._a = u(e.slice(0), function (t) {
                                    return parseInt(t, 10)
                                }), ce(t)) : "object" == typeof e ? ye(t) : a(e) ? t._d = new Date(e) : n.createFromInputFallback(t)
            }

            function be(t, e, n, i, a) {
                var l = {};
                return n !== !0 && n !== !1 || (i = n, n = void 0), (r(t) && s(t) || o(t) && 0 === t.length) && (t = void 0), l._isAMomentObject = !0, l._useUTC = l._isUTC = a, l._l = n, l._i = t, l._f = e, l._strict = i, ve(l)
            }

            function _e(t, e, n, i) {
                return be(t, e, n, i, !1)
            }

            function we(t, e) {
                var n, i;
                if (1 === e.length && o(e[0]) && (e = e[0]), !e.length)return _e();
                for (n = e[0], i = 1; i < e.length; ++i)e[i].isValid() && !e[i][t](n) || (n = e[i]);
                return n
            }

            function ke() {
                var t = [].slice.call(arguments, 0);
                return we("isBefore", t)
            }

            function Ce() {
                var t = [].slice.call(arguments, 0);
                return we("isAfter", t)
            }

            function je(t) {
                var e = $(t), n = e.year || 0, i = e.quarter || 0, o = e.month || 0, r = e.week || 0, s = e.day || 0, a = e.hour || 0, l = e.minute || 0, u = e.second || 0, c = e.millisecond || 0;
                this._milliseconds = +c + 1e3 * u + 6e4 * l + 1e3 * a * 60 * 60, this._days = +s + 7 * r, this._months = +o + 3 * i + 12 * n, this._data = {}, this._locale = ie(), this._bubble()
            }

            function Te(t) {
                return t instanceof je
            }

            function Se(t) {
                return t < 0 ? Math.round(-1 * t) * -1 : Math.round(t)
            }

            function xe(t, e) {
                q(t, 0, 0, function () {
                    var t = this.utcOffset(), n = "+";
                    return t < 0 && (t = -t, n = "-"), n + G(~~(t / 60), 2) + e + G(~~t % 60, 2)
                })
            }

            function Oe(t, e) {
                var n = (e || "").match(t);
                if (null === n)return null;
                var i = n[n.length - 1] || [], o = (i + "").match(Ho) || ["-", 0, 0], r = +(60 * o[1]) + k(o[2]);
                return 0 === r ? 0 : "+" === o[0] ? r : -r
            }

            function Ee(t, e) {
                var i, o;
                return e._isUTC ? (i = e.clone(), o = (_(t) || l(t) ? t.valueOf() : _e(t).valueOf()) - i.valueOf(), i._d.setTime(i._d.valueOf() + o), n.updateOffset(i, !1), i) : _e(t).local()
            }

            function Pe(t) {
                return 15 * -Math.round(t._d.getTimezoneOffset() / 15)
            }

            function Me(t, e) {
                var i, o = this._offset || 0;
                if (!this.isValid())return null != t ? this : NaN;
                if (null != t) {
                    if ("string" == typeof t) {
                        if (t = Oe(Zi, t), null === t)return this
                    } else Math.abs(t) < 16 && (t = 60 * t);
                    return !this._isUTC && e && (i = Pe(this)), this._offset = t, this._isUTC = !0, null != i && this.add(i, "m"), o !== t && (!e || this._changeInProgress ? Ge(this, He(t - o, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, n.updateOffset(this, !0), this._changeInProgress = null)), this
                }
                return this._isUTC ? o : Pe(this)
            }

            function Ae(t, e) {
                return null != t ? ("string" != typeof t && (t = -t), this.utcOffset(t, e), this) : -this.utcOffset()
            }

            function Le(t) {
                return this.utcOffset(0, t)
            }

            function De(t) {
                return this._isUTC && (this.utcOffset(0, t), this._isUTC = !1, t && this.subtract(Pe(this), "m")), this
            }

            function Fe() {
                if (null != this._tzm) this.utcOffset(this._tzm); else if ("string" == typeof this._i) {
                    var t = Oe(Ji, this._i);
                    null != t ? this.utcOffset(t) : this.utcOffset(0, !0)
                }
                return this
            }

            function Re(t) {
                return !!this.isValid() && (t = t ? _e(t).utcOffset() : 0, (this.utcOffset() - t) % 60 === 0)
            }

            function Ie() {
                return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
            }

            function Ne() {
                if (!m(this._isDSTShifted))return this._isDSTShifted;
                var t = {};
                if (g(t, this), t = me(t), t._a) {
                    var e = t._isUTC ? f(t._a) : _e(t._a);
                    this._isDSTShifted = this.isValid() && C(t._a, e.toArray()) > 0
                } else this._isDSTShifted = !1;
                return this._isDSTShifted
            }

            function $e() {
                return !!this.isValid() && !this._isUTC
            }

            function Be() {
                return !!this.isValid() && this._isUTC
            }

            function We() {
                return !!this.isValid() && (this._isUTC && 0 === this._offset)
            }

            function He(t, e) {
                var n, i, o, r = t, s = null;
                return Te(t) ? r = {
                        ms: t._milliseconds,
                        d: t._days,
                        M: t._months
                    } : a(t) ? (r = {}, e ? r[e] = t : r.milliseconds = t) : (s = Vo.exec(t)) ? (n = "-" === s[1] ? -1 : 1, r = {
                                y: 0,
                                d: k(s[ro]) * n,
                                h: k(s[so]) * n,
                                m: k(s[ao]) * n,
                                s: k(s[lo]) * n,
                                ms: k(Se(1e3 * s[uo])) * n
                            }) : (s = Yo.exec(t)) ? (n = "-" === s[1] ? -1 : 1, r = {
                                    y: Ve(s[2], n),
                                    M: Ve(s[3], n),
                                    w: Ve(s[4], n),
                                    d: Ve(s[5], n),
                                    h: Ve(s[6], n),
                                    m: Ve(s[7], n),
                                    s: Ve(s[8], n)
                                }): null
            ==
                r ? r = {} : "object" == typeof r && ("from" in r || "to" in r) && (o = ze(_e(r.from), _e(r.to)), r = {}, r.ms = o.milliseconds, r.M = o.months), i = new je(r), Te(t) && c(t, "_locale") && (i._locale = t._locale), i
            }

            function Ve(t, e) {
                var n = t && parseFloat(t.replace(",", "."));
                return (isNaN(n) ? 0 : n) * e
            }

            function Ye(t, e) {
                var n = {milliseconds: 0, months: 0};
                return n.months = e.month() - t.month() + 12 * (e.year() - t.year()), t.clone().add(n.months, "M").isAfter(e) && --n.months, n.milliseconds = +e - +t.clone().add(n.months, "M"), n
            }

            function ze(t, e) {
                var n;
                return t.isValid() && e.isValid() ? (e = Ee(e, t), t.isBefore(e) ? n = Ye(t, e) : (n = Ye(e, t), n.milliseconds = -n.milliseconds, n.months = -n.months), n) : {
                        milliseconds: 0,
                        months: 0
                    }
            }

            function Ue(t, e) {
                return function (n, i) {
                    var o, r;
                    return null === i || isNaN(+i) || (S(e, "moment()." + e + "(period, number) is deprecated. Please use moment()." + e + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), r = n, n = i, i = r), n = "string" == typeof n ? +n : n, o = He(n, i), Ge(this, o, t), this
                }
            }

            function Ge(t, e, i, o) {
                var r = e._milliseconds, s = Se(e._days), a = Se(e._months);
                t.isValid() && (o = null == o || o, r && t._d.setTime(t._d.valueOf() + r * i), s && Y(t, "Date", V(t, "Date") + s * i), a && ht(t, V(t, "Month") + a * i), o && n.updateOffset(t, s || a))
            }

            function qe(t, e) {
                var n = t.diff(e, "days", !0);
                return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse"
            }

            function Xe(t, e) {
                var i = t || _e(), o = Ee(i, this).startOf("day"), r = n.calendarFormat(this, o) || "sameElse", s = e && (x(e[r]) ? e[r].call(this, i) : e[r]);
                return this.format(s || this.localeData().calendar(r, this, _e(i)))
            }

            function Ke() {
                return new b(this)
            }

            function Je(t, e) {
                var n = _(t) ? t : _e(t);
                return !(!this.isValid() || !n.isValid()) && (e = N(m(e) ? "millisecond" : e), "millisecond" === e ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(e).valueOf())
            }

            function Ze(t, e) {
                var n = _(t) ? t : _e(t);
                return !(!this.isValid() || !n.isValid()) && (e = N(m(e) ? "millisecond" : e), "millisecond" === e ? this.valueOf() < n.valueOf() : this.clone().endOf(e).valueOf() < n.valueOf())
            }

            function Qe(t, e, n, i) {
                return i = i || "()", ("(" === i[0] ? this.isAfter(t, n) : !this.isBefore(t, n)) && (")" === i[1] ? this.isBefore(e, n) : !this.isAfter(e, n))
            }

            function tn(t, e) {
                var n, i = _(t) ? t : _e(t);
                return !(!this.isValid() || !i.isValid()) && (e = N(e || "millisecond"), "millisecond" === e ? this.valueOf() === i.valueOf() : (n = i.valueOf(), this.clone().startOf(e).valueOf() <= n && n <= this.clone().endOf(e).valueOf()))
            }

            function en(t, e) {
                return this.isSame(t, e) || this.isAfter(t, e)
            }

            function nn(t, e) {
                return this.isSame(t, e) || this.isBefore(t, e)
            }

            function on(t, e, n) {
                var i, o, r, s;
                return this.isValid() ? (i = Ee(t, this), i.isValid() ? (o = 6e4 * (i.utcOffset() - this.utcOffset()), e = N(e), "year" === e || "month" === e || "quarter" === e ? (s = rn(this, i), "quarter" === e ? s /= 3 : "year" === e && (s /= 12)) : (r = this - i, s = "second" === e ? r / 1e3 : "minute" === e ? r / 6e4 : "hour" === e ? r / 36e5 : "day" === e ? (r - o) / 864e5 : "week" === e ? (r - o) / 6048e5 : r), n ? s : w(s)) : NaN) : NaN
            }

            function rn(t, e) {
                var n, i, o = 12 * (e.year() - t.year()) + (e.month() - t.month()), r = t.clone().add(o, "months");
                return e - r < 0 ? (n = t.clone().add(o - 1, "months"), i = (e - r) / (r - n)) : (n = t.clone().add(o + 1, "months"), i = (e - r) / (n - r)), -(o + i) || 0
            }

            function sn() {
                return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
            }

            function an() {
                var t = this.clone().utc();
                return 0 < t.year() && t.year() <= 9999 ? x(Date.prototype.toISOString) ? this.toDate().toISOString() : J(t, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : J(t, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")
            }

            function ln() {
                if (!this.isValid())return "moment.invalid(/* " + this._i + " */)";
                var t = "moment", e = "";
                this.isLocal() || (t = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", e = "Z");
                var n = "[" + t + '("]', i = 0 < this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", o = "-MM-DD[T]HH:mm:ss.SSS", r = e + '[")]';
                return this.format(n + i + o + r)
            }

            function un(t) {
                t || (t = this.isUtc() ? n.defaultFormatUtc : n.defaultFormat);
                var e = J(this, t);
                return this.localeData().postformat(e)
            }

            function cn(t, e) {
                return this.isValid() && (_(t) && t.isValid() || _e(t).isValid()) ? He({
                        to: this,
                        from: t
                    }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate()
            }

            function hn(t) {
                return this.from(_e(), t)
            }

            function fn(t, e) {
                return this.isValid() && (_(t) && t.isValid() || _e(t).isValid()) ? He({
                        from: this,
                        to: t
                    }).locale(this.locale()).humanize(!e) : this.localeData().invalidDate()
            }

            function dn(t) {
                return this.to(_e(), t)
            }

            function pn(t) {
                var e;
                return void 0 === t ? this._locale._abbr : (e = ie(t), null != e && (this._locale = e), this)
            }

            function yn() {
                return this._locale
            }

            function vn(t) {
                switch (t = N(t)) {
                    case"year":
                        this.month(0);
                    case"quarter":
                    case"month":
                        this.date(1);
                    case"week":
                    case"isoWeek":
                    case"day":
                    case"date":
                        this.hours(0);
                    case"hour":
                        this.minutes(0);
                    case"minute":
                        this.seconds(0);
                    case"second":
                        this.milliseconds(0)
                }
                return "week" === t && this.weekday(0), "isoWeek" === t && this.isoWeekday(1), "quarter" === t && this.month(3 * Math.floor(this.month() / 3)), this
            }

            function mn(t) {
                return t = N(t), void 0 === t || "millisecond" === t ? this : ("date" === t && (t = "day"), this.startOf(t).add(1, "isoWeek" === t ? "week" : t).subtract(1, "ms"))
            }

            function gn() {
                return this._d.valueOf() - 6e4 * (this._offset || 0)
            }

            function bn() {
                return Math.floor(this.valueOf() / 1e3)
            }

            function _n() {
                return new Date(this.valueOf())
            }

            function wn() {
                var t = this;
                return [t.year(), t.month(), t.date(), t.hour(), t.minute(), t.second(), t.millisecond()]
            }

            function kn() {
                var t = this;
                return {
                    years: t.year(),
                    months: t.month(),
                    date: t.date(),
                    hours: t.hours(),
                    minutes: t.minutes(),
                    seconds: t.seconds(),
                    milliseconds: t.milliseconds()
                }
            }

            function Cn() {
                return this.isValid() ? this.toISOString() : null
            }

            function jn() {
                return y(this)
            }

            function Tn() {
                return h({}, p(this))
            }

            function Sn() {
                return p(this).overflow
            }

            function xn() {
                return {input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict}
            }

            function On(t, e) {
                q(0, [t, t.length], 0, e)
            }

            function En(t) {
                return Ln.call(this, t, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
            }

            function Pn(t) {
                return Ln.call(this, t, this.isoWeek(), this.isoWeekday(), 1, 4)
            }

            function Mn() {
                return Tt(this.year(), 1, 4)
            }

            function An() {
                var t = this.localeData()._week;
                return Tt(this.year(), t.dow, t.doy)
            }

            function Ln(t, e, n, i, o) {
                var r;
                return null == t ? jt(this, i, o).year : (r = Tt(t, i, o), e > r && (e = r), Dn.call(this, t, e, n, i, o))
            }

            function Dn(t, e, n, i, o) {
                var r = Ct(t, e, n, i, o), s = wt(r.year, 0, r.dayOfYear);
                return this.year(s.getUTCFullYear()), this.month(s.getUTCMonth()), this.date(s.getUTCDate()), this
            }

            function Fn(t) {
                return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3)
            }

            function Rn(t) {
                var e = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
                return null == t ? e : this.add(t - e, "d")
            }

            function In(t, e) {
                e[uo] = k(1e3 * ("0." + t))
            }

            function Nn() {
                return this._isUTC ? "UTC" : ""
            }

            function $n() {
                return this._isUTC ? "Coordinated Universal Time" : ""
            }

            function Bn(t) {
                return _e(1e3 * t)
            }

            function Wn() {
                return _e.apply(null, arguments).parseZone()
            }

            function Hn(t) {
                return t
            }

            function Vn(t, e, n, i) {
                var o = ie(), r = f().set(i, e);
                return o[n](r, t)
            }

            function Yn(t, e, n) {
                if (a(t) && (e = t, t = void 0), t = t || "", null != e)return Vn(t, e, n, "month");
                var i, o = [];
                for (i = 0; i < 12; i++)o[i] = Vn(t, i, n, "month");
                return o
            }

            function zn(t, e, n, i) {
                "boolean" == typeof t ? (a(e) && (n = e, e = void 0), e = e || "") : (e = t, n = e, t = !1, a(e) && (n = e, e = void 0), e = e || "");
                var o = ie(), r = t ? o._week.dow : 0;
                if (null != n)return Vn(e, (n + r) % 7, i, "day");
                var s, l = [];
                for (s = 0; s < 7; s++)l[s] = Vn(e, (s + r) % 7, i, "day");
                return l
            }

            function Un(t, e) {
                return Yn(t, e, "months")
            }

            function Gn(t, e) {
                return Yn(t, e, "monthsShort")
            }

            function qn(t, e, n) {
                return zn(t, e, n, "weekdays")
            }

            function Xn(t, e, n) {
                return zn(t, e, n, "weekdaysShort")
            }

            function Kn(t, e, n) {
                return zn(t, e, n, "weekdaysMin")
            }

            function Jn() {
                var t = this._data;
                return this._milliseconds = er(this._milliseconds), this._days = er(this._days), this._months = er(this._months), t.milliseconds = er(t.milliseconds), t.seconds = er(t.seconds), t.minutes = er(t.minutes), t.hours = er(t.hours), t.months = er(t.months), t.years = er(t.years), this
            }

            function Zn(t, e, n, i) {
                var o = He(e, n);
                return t._milliseconds += i * o._milliseconds, t._days += i * o._days, t._months += i * o._months, t._bubble()
            }

            function Qn(t, e) {
                return Zn(this, t, e, 1)
            }

            function ti(t, e) {
                return Zn(this, t, e, -1)
            }

            function ei(t) {
                return t < 0 ? Math.floor(t) : Math.ceil(t)
            }

            function ni() {
                var t, e, n, i, o, r = this._milliseconds, s = this._days, a = this._months, l = this._data;
                return r >= 0 && s >= 0 && a >= 0 || r <= 0 && s <= 0 && a <= 0 || (r += 864e5 * ei(oi(a) + s), s = 0, a = 0), l.milliseconds = r % 1e3, t = w(r / 1e3), l.seconds = t % 60, e = w(t / 60), l.minutes = e % 60, n = w(e / 60), l.hours = n % 24, s += w(n / 24), o = w(ii(s)), a += o, s -= ei(oi(o)), i = w(a / 12), a %= 12, l.days = s, l.months = a, l.years = i, this
            }

            function ii(t) {
                return 4800 * t / 146097
            }

            function oi(t) {
                return 146097 * t / 4800
            }

            function ri(t) {
                var e, n, i = this._milliseconds;
                if (t = N(t), "month" === t || "year" === t)return e = this._days + i / 864e5, n = this._months + ii(e), "month" === t ? n : n / 12;
                switch (e = this._days + Math.round(oi(this._months)), t) {
                    case"week":
                        return e / 7 + i / 6048e5;
                    case"day":
                        return e + i / 864e5;
                    case"hour":
                        return 24 * e + i / 36e5;
                    case"minute":
                        return 1440 * e + i / 6e4;
                    case"second":
                        return 86400 * e + i / 1e3;
                    case"millisecond":
                        return Math.floor(864e5 * e) + i;
                    default:
                        throw new Error("Unknown unit " + t)
                }
            }

            function si() {
                return this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * k(this._months / 12)
            }

            function ai(t) {
                return function () {
                    return this.as(t)
                }
            }

            function li(t) {
                return t = N(t), this[t + "s"]()
            }

            function ui(t) {
                return function () {
                    return this._data[t]
                }
            }

            function ci() {
                return w(this.days() / 7)
            }

            function hi(t, e, n, i, o) {
                return o.relativeTime(e || 1, !!n, t, i)
            }

            function fi(t, e, n) {
                var i = He(t).abs(), o = mr(i.as("s")), r = mr(i.as("m")), s = mr(i.as("h")), a = mr(i.as("d")), l = mr(i.as("M")), u = mr(i.as("y")), c = o < gr.s && ["s", o] || r <= 1 && ["m"] || r < gr.m && ["mm", r] || s <= 1 && ["h"] || s < gr.h && ["hh", s] || a <= 1 && ["d"] || a < gr.d && ["dd", a] || l <= 1 && ["M"] || l < gr.M && ["MM", l] || u <= 1 && ["y"] || ["yy", u];
                return c[2] = e, c[3] = +t > 0, c[4] = n, hi.apply(null, c)
            }

            function di(t) {
                return void 0 === t ? mr : "function" == typeof t && (mr = t, !0)
            }

            function pi(t, e) {
                return void 0 !== gr[t] && (void 0 === e ? gr[t] : (gr[t] = e, !0))
            }

            function yi(t) {
                var e = this.localeData(), n = fi(this, !t, e);
                return t && (n = e.pastFuture(+this, n)), e.postformat(n)
            }

            function vi() {
                var t, e, n, i = br(this._milliseconds) / 1e3, o = br(this._days), r = br(this._months);
                t = w(i / 60), e = w(t / 60), i %= 60, t %= 60, n = w(r / 12), r %= 12;
                var s = n, a = r, l = o, u = e, c = t, h = i, f = this.asSeconds();
                return f ? (f < 0 ? "-" : "") + "P" + (s ? s + "Y" : "") + (a ? a + "M" : "") + (l ? l + "D" : "") + (u || c || h ? "T" : "") + (u ? u + "H" : "") + (c ? c + "M" : "") + (h ? h + "S" : "") : "P0D"
            }

            var mi, gi;
            gi = Array.prototype.some ? Array.prototype.some : function (t) {
                    for (var e = Object(this), n = e.length >>> 0, i = 0; i < n; i++)if (i in e && t.call(this, e[i], i, e))return !0;
                    return !1
                };
            var bi = gi, _i = n.momentProperties = [], wi = !1, ki = {};
            n.suppressDeprecationWarnings = !1, n.deprecationHandler = null;
            var Ci;
            Ci = Object.keys ? Object.keys : function (t) {
                    var e, n = [];
                    for (e in t)c(t, e) && n.push(e);
                    return n
                };
            var ji, Ti = Ci, Si = {
                sameDay: "[Today at] LT",
                nextDay: "[Tomorrow at] LT",
                nextWeek: "dddd [at] LT",
                lastDay: "[Yesterday at] LT",
                lastWeek: "[Last] dddd [at] LT",
                sameElse: "L"
            }, xi = {
                LTS: "h:mm:ss A",
                LT: "h:mm A",
                L: "MM/DD/YYYY",
                LL: "MMMM D, YYYY",
                LLL: "MMMM D, YYYY h:mm A",
                LLLL: "dddd, MMMM D, YYYY h:mm A"
            }, Oi = "Invalid date", Ei = "%d", Pi = /\d{1,2}/, Mi = {
                future: "in %s",
                past: "%s ago",
                s: "a few seconds",
                m: "a minute",
                mm: "%d minutes",
                h: "an hour",
                hh: "%d hours",
                d: "a day",
                dd: "%d days",
                M: "a month",
                MM: "%d months",
                y: "a year",
                yy: "%d years"
            }, Ai = {}, Li = {}, Di = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, Fi = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, Ri = {}, Ii = {}, Ni = /\d/, $i = /\d\d/, Bi = /\d{3}/, Wi = /\d{4}/, Hi = /[+-]?\d{6}/, Vi = /\d\d?/, Yi = /\d\d\d\d?/, zi = /\d\d\d\d\d\d?/, Ui = /\d{1,3}/, Gi = /\d{1,4}/, qi = /[+-]?\d{1,6}/, Xi = /\d+/, Ki = /[+-]?\d+/, Ji = /Z|[+-]\d\d:?\d\d/gi, Zi = /Z|[+-]\d\d(?::?\d\d)?/gi, Qi = /[+-]?\d+(\.\d{1,3})?/, to = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, eo = {}, no = {}, io = 0, oo = 1, ro = 2, so = 3, ao = 4, lo = 5, uo = 6, co = 7, ho = 8;
            ji = Array.prototype.indexOf ? Array.prototype.indexOf : function (t) {
                    var e;
                    for (e = 0; e < this.length; ++e)if (this[e] === t)return e;
                    return -1
                };
            var fo = ji;
            q("M", ["MM", 2], "Mo", function () {
                return this.month() + 1
            }), q("MMM", 0, 0, function (t) {
                return this.localeData().monthsShort(this, t)
            }), q("MMMM", 0, 0, function (t) {
                return this.localeData().months(this, t)
            }), I("month", "M"), B("month", 8), Q("M", Vi), Q("MM", Vi, $i), Q("MMM", function (t, e) {
                return e.monthsShortRegex(t)
            }), Q("MMMM", function (t, e) {
                return e.monthsRegex(t)
            }), it(["M", "MM"], function (t, e) {
                e[oo] = k(t) - 1
            }), it(["MMM", "MMMM"], function (t, e, n, i) {
                var o = n._locale.monthsParse(t, i, n._strict);
                null != o ? e[oo] = o : p(n).invalidMonth = t
            });
            var po = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, yo = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), vo = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), mo = to, go = to;
            q("Y", 0, 0, function () {
                var t = this.year();
                return t <= 9999 ? "" + t : "+" + t
            }), q(0, ["YY", 2], 0, function () {
                return this.year() % 100
            }), q(0, ["YYYY", 4], 0, "year"), q(0, ["YYYYY", 5], 0, "year"), q(0, ["YYYYYY", 6, !0], 0, "year"), I("year", "y"), B("year", 1), Q("Y", Ki), Q("YY", Vi, $i), Q("YYYY", Gi, Wi), Q("YYYYY", qi, Hi), Q("YYYYYY", qi, Hi), it(["YYYYY", "YYYYYY"], io), it("YYYY", function (t, e) {
                e[io] = 2 === t.length ? n.parseTwoDigitYear(t) : k(t)
            }), it("YY", function (t, e) {
                e[io] = n.parseTwoDigitYear(t)
            }), it("Y", function (t, e) {
                e[io] = parseInt(t, 10)
            }), n.parseTwoDigitYear = function (t) {
                return k(t) + (k(t) > 68 ? 1900 : 2e3)
            };
            var bo = H("FullYear", !0);
            q("w", ["ww", 2], "wo", "week"), q("W", ["WW", 2], "Wo", "isoWeek"), I("week", "w"), I("isoWeek", "W"), B("week", 5), B("isoWeek", 5), Q("w", Vi), Q("ww", Vi, $i), Q("W", Vi), Q("WW", Vi, $i), ot(["w", "ww", "W", "WW"], function (t, e, n, i) {
                e[i.substr(0, 1)] = k(t)
            });
            var _o = {dow: 0, doy: 6};
            q("d", 0, "do", "day"), q("dd", 0, 0, function (t) {
                return this.localeData().weekdaysMin(this, t)
            }), q("ddd", 0, 0, function (t) {
                return this.localeData().weekdaysShort(this, t)
            }), q("dddd", 0, 0, function (t) {
                return this.localeData().weekdays(this, t)
            }), q("e", 0, 0, "weekday"), q("E", 0, 0, "isoWeekday"), I("day", "d"), I("weekday", "e"), I("isoWeekday", "E"), B("day", 11), B("weekday", 11), B("isoWeekday", 11), Q("d", Vi), Q("e", Vi), Q("E", Vi), Q("dd", function (t, e) {
                return e.weekdaysMinRegex(t)
            }), Q("ddd", function (t, e) {
                return e.weekdaysShortRegex(t)
            }), Q("dddd", function (t, e) {
                return e.weekdaysRegex(t)
            }), ot(["dd", "ddd", "dddd"], function (t, e, n, i) {
                var o = n._locale.weekdaysParse(t, i, n._strict);
                null != o ? e.d = o : p(n).invalidWeekday = t
            }), ot(["d", "e", "E"], function (t, e, n, i) {
                e[i] = k(t)
            });
            var wo = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), ko = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), Co = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), jo = to, To = to, So = to;
            q("H", ["HH", 2], 0, "hour"), q("h", ["hh", 2], 0, zt), q("k", ["kk", 2], 0, Ut), q("hmm", 0, 0, function () {
                return "" + zt.apply(this) + G(this.minutes(), 2)
            }), q("hmmss", 0, 0, function () {
                return "" + zt.apply(this) + G(this.minutes(), 2) + G(this.seconds(), 2)
            }), q("Hmm", 0, 0, function () {
                return "" + this.hours() + G(this.minutes(), 2)
            }), q("Hmmss", 0, 0, function () {
                return "" + this.hours() + G(this.minutes(), 2) + G(this.seconds(), 2)
            }), Gt("a", !0), Gt("A", !1), I("hour", "h"), B("hour", 13), Q("a", qt), Q("A", qt), Q("H", Vi), Q("h", Vi), Q("HH", Vi, $i), Q("hh", Vi, $i), Q("hmm", Yi), Q("hmmss", zi), Q("Hmm", Yi), Q("Hmmss", zi), it(["H", "HH"], so), it(["a", "A"], function (t, e, n) {
                n._isPm = n._locale.isPM(t), n._meridiem = t
            }), it(["h", "hh"], function (t, e, n) {
                e[so] = k(t), p(n).bigHour = !0
            }), it("hmm", function (t, e, n) {
                var i = t.length - 2;
                e[so] = k(t.substr(0, i)), e[ao] = k(t.substr(i)), p(n).bigHour = !0
            }), it("hmmss", function (t, e, n) {
                var i = t.length - 4, o = t.length - 2;
                e[so] = k(t.substr(0, i)), e[ao] = k(t.substr(i, 2)), e[lo] = k(t.substr(o)), p(n).bigHour = !0
            }), it("Hmm", function (t, e, n) {
                var i = t.length - 2;
                e[so] = k(t.substr(0, i)), e[ao] = k(t.substr(i))
            }), it("Hmmss", function (t, e, n) {
                var i = t.length - 4, o = t.length - 2;
                e[so] = k(t.substr(0, i)), e[ao] = k(t.substr(i, 2)), e[lo] = k(t.substr(o))
            });
            var xo, Oo = /[ap]\.?m?\.?/i, Eo = H("Hours", !0), Po = {
                calendar: Si,
                longDateFormat: xi,
                invalidDate: Oi,
                ordinal: Ei,
                ordinalParse: Pi,
                relativeTime: Mi,
                months: yo,
                monthsShort: vo,
                week: _o,
                weekdays: wo,
                weekdaysMin: Co,
                weekdaysShort: ko,
                meridiemParse: Oo
            }, Mo = {}, Ao = {}, Lo = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Do = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Fo = /Z|[+-]\d\d(?::?\d\d)?/, Ro = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], Io = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], No = /^\/?Date\((\-?\d+)/i;
            n.createFromInputFallback = T("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (t) {
                t._d = new Date(t._i + (t._useUTC ? " UTC" : ""))
            }), n.ISO_8601 = function () {
            };
            var $o = T("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () {
                var t = _e.apply(null, arguments);
                return this.isValid() && t.isValid() ? t < this ? this : t : v()
            }), Bo = T("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () {
                var t = _e.apply(null, arguments);
                return this.isValid() && t.isValid() ? t > this ? this : t : v()
            }), Wo = function () {
                return Date.now ? Date.now() : +new Date
            };
            xe("Z", ":"), xe("ZZ", ""), Q("Z", Zi), Q("ZZ", Zi), it(["Z", "ZZ"], function (t, e, n) {
                n._useUTC = !0, n._tzm = Oe(Zi, t)
            });
            var Ho = /([\+\-]|\d\d)/gi;
            n.updateOffset = function () {
            };
            var Vo = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, Yo = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;
            He.fn = je.prototype;
            var zo = Ue(1, "add"), Uo = Ue(-1, "subtract");
            n.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", n.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
            var Go = T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (t) {
                return void 0 === t ? this.localeData() : this.locale(t)
            });
            q(0, ["gg", 2], 0, function () {
                return this.weekYear() % 100
            }), q(0, ["GG", 2], 0, function () {
                return this.isoWeekYear() % 100
            }), On("gggg", "weekYear"), On("ggggg", "weekYear"), On("GGGG", "isoWeekYear"), On("GGGGG", "isoWeekYear"), I("weekYear", "gg"), I("isoWeekYear", "GG"), B("weekYear", 1), B("isoWeekYear", 1), Q("G", Ki), Q("g", Ki), Q("GG", Vi, $i), Q("gg", Vi, $i), Q("GGGG", Gi, Wi), Q("gggg", Gi, Wi), Q("GGGGG", qi, Hi), Q("ggggg", qi, Hi), ot(["gggg", "ggggg", "GGGG", "GGGGG"], function (t, e, n, i) {
                e[i.substr(0, 2)] = k(t)
            }), ot(["gg", "GG"], function (t, e, i, o) {
                e[o] = n.parseTwoDigitYear(t)
            }), q("Q", 0, "Qo", "quarter"), I("quarter", "Q"), B("quarter", 7), Q("Q", Ni), it("Q", function (t, e) {
                e[oo] = 3 * (k(t) - 1)
            }), q("D", ["DD", 2], "Do", "date"), I("date", "D"), B("date", 9), Q("D", Vi), Q("DD", Vi, $i), Q("Do", function (t, e) {
                return t ? e._ordinalParse : e._ordinalParseLenient
            }), it(["D", "DD"], ro), it("Do", function (t, e) {
                e[ro] = k(t.match(Vi)[0], 10)
            });
            var qo = H("Date", !0);
            q("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), I("dayOfYear", "DDD"), B("dayOfYear", 4), Q("DDD", Ui), Q("DDDD", Bi), it(["DDD", "DDDD"], function (t, e, n) {
                n._dayOfYear = k(t)
            }), q("m", ["mm", 2], 0, "minute"), I("minute", "m"), B("minute", 14), Q("m", Vi), Q("mm", Vi, $i), it(["m", "mm"], ao);
            var Xo = H("Minutes", !1);
            q("s", ["ss", 2], 0, "second"), I("second", "s"), B("second", 15), Q("s", Vi), Q("ss", Vi, $i), it(["s", "ss"], lo);
            var Ko = H("Seconds", !1);
            q("S", 0, 0, function () {
                return ~~(this.millisecond() / 100)
            }), q(0, ["SS", 2], 0, function () {
                return ~~(this.millisecond() / 10)
            }), q(0, ["SSS", 3], 0, "millisecond"), q(0, ["SSSS", 4], 0, function () {
                return 10 * this.millisecond()
            }), q(0, ["SSSSS", 5], 0, function () {
                return 100 * this.millisecond()
            }), q(0, ["SSSSSS", 6], 0, function () {
                return 1e3 * this.millisecond()
            }), q(0, ["SSSSSSS", 7], 0, function () {
                return 1e4 * this.millisecond()
            }), q(0, ["SSSSSSSS", 8], 0, function () {
                return 1e5 * this.millisecond()
            }), q(0, ["SSSSSSSSS", 9], 0, function () {
                return 1e6 * this.millisecond()
            }), I("millisecond", "ms"), B("millisecond", 16), Q("S", Ui, Ni), Q("SS", Ui, $i), Q("SSS", Ui, Bi);
            var Jo;
            for (Jo = "SSSS"; Jo.length <= 9; Jo += "S")Q(Jo, Xi);
            for (Jo = "S"; Jo.length <= 9; Jo += "S")it(Jo, In);
            var Zo = H("Milliseconds", !1);
            q("z", 0, 0, "zoneAbbr"), q("zz", 0, 0, "zoneName");
            var Qo = b.prototype;
            Qo.add = zo, Qo.calendar = Xe, Qo.clone = Ke, Qo.diff = on, Qo.endOf = mn, Qo.format = un, Qo.from = cn, Qo.fromNow = hn, Qo.to = fn, Qo.toNow = dn, Qo.get = z, Qo.invalidAt = Sn, Qo.isAfter = Je, Qo.isBefore = Ze, Qo.isBetween = Qe, Qo.isSame = tn, Qo.isSameOrAfter = en, Qo.isSameOrBefore = nn, Qo.isValid = jn, Qo.lang = Go, Qo.locale = pn, Qo.localeData = yn, Qo.max = Bo, Qo.min = $o, Qo.parsingFlags = Tn, Qo.set = U, Qo.startOf = vn, Qo.subtract = Uo, Qo.toArray = wn, Qo.toObject = kn, Qo.toDate = _n, Qo.toISOString = an, Qo.inspect = ln, Qo.toJSON = Cn, Qo.toString = sn, Qo.unix = bn, Qo.valueOf = gn, Qo.creationData = xn, Qo.year = bo, Qo.isLeapYear = bt, Qo.weekYear = En, Qo.isoWeekYear = Pn, Qo.quarter = Qo.quarters = Fn, Qo.month = ft, Qo.daysInMonth = dt, Qo.week = Qo.weeks = Et, Qo.isoWeek = Qo.isoWeeks = Pt, Qo.weeksInYear = An, Qo.isoWeeksInYear = Mn, Qo.date = qo, Qo.day = Qo.days = Nt, Qo.weekday = $t, Qo.isoWeekday = Bt, Qo.dayOfYear = Rn, Qo.hour = Qo.hours = Eo, Qo.minute = Qo.minutes = Xo, Qo.second = Qo.seconds = Ko, Qo.millisecond = Qo.milliseconds = Zo, Qo.utcOffset = Me, Qo.utc = Le, Qo.local = De, Qo.parseZone = Fe, Qo.hasAlignedHourOffset = Re, Qo.isDST = Ie, Qo.isLocal = $e, Qo.isUtcOffset = Be, Qo.isUtc = We, Qo.isUTC = We, Qo.zoneAbbr = Nn, Qo.zoneName = $n, Qo.dates = T("dates accessor is deprecated. Use date instead.", qo), Qo.months = T("months accessor is deprecated. Use month instead", ft), Qo.years = T("years accessor is deprecated. Use year instead", bo), Qo.zone = T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", Ae), Qo.isDSTShifted = T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Ne);
            var tr = P.prototype;
            tr.calendar = M, tr.longDateFormat = A, tr.invalidDate = L, tr.ordinal = D, tr.preparse = Hn, tr.postformat = Hn, tr.relativeTime = F, tr.pastFuture = R, tr.set = O, tr.months = at, tr.monthsShort = lt, tr.monthsParse = ct, tr.monthsRegex = yt, tr.monthsShortRegex = pt, tr.week = St, tr.firstDayOfYear = Ot, tr.firstDayOfWeek = xt, tr.weekdays = Lt, tr.weekdaysMin = Ft, tr.weekdaysShort = Dt, tr.weekdaysParse = It, tr.weekdaysRegex = Wt, tr.weekdaysShortRegex = Ht, tr.weekdaysMinRegex = Vt, tr.isPM = Xt, tr.meridiem = Kt, te("en", {
                ordinalParse: /\d{1,2}(th|st|nd|rd)/,
                ordinal: function (t) {
                    var e = t % 10, n = 1 === k(t % 100 / 10) ? "th" : 1 === e ? "st" : 2 === e ? "nd" : 3 === e ? "rd" : "th";
                    return t + n
                }
            }), n.lang = T("moment.lang is deprecated. Use moment.locale instead.", te), n.langData = T("moment.langData is deprecated. Use moment.localeData instead.", ie);
            var er = Math.abs, nr = ai("ms"), ir = ai("s"), or = ai("m"), rr = ai("h"), sr = ai("d"), ar = ai("w"), lr = ai("M"), ur = ai("y"), cr = ui("milliseconds"), hr = ui("seconds"), fr = ui("minutes"), dr = ui("hours"), pr = ui("days"), yr = ui("months"), vr = ui("years"), mr = Math.round, gr = {
                s: 45,
                m: 45,
                h: 22,
                d: 26,
                M: 11
            }, br = Math.abs, _r = je.prototype;
            return _r.abs = Jn, _r.add = Qn, _r.subtract = ti, _r.as = ri, _r.asMilliseconds = nr, _r.asSeconds = ir, _r.asMinutes = or, _r.asHours = rr, _r.asDays = sr, _r.asWeeks = ar, _r.asMonths = lr, _r.asYears = ur, _r.valueOf = si, _r._bubble = ni, _r.get = li, _r.milliseconds = cr, _r.seconds = hr, _r.minutes = fr, _r.hours = dr, _r.days = pr, _r.weeks = ci, _r.months = yr, _r.years = vr, _r.humanize = yi, _r.toISOString = vi, _r.toString = vi, _r.toJSON = vi, _r.locale = pn, _r.localeData = yn, _r.toIsoString = T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", vi), _r.lang = Go, q("X", 0, 0, "unix"), q("x", 0, 0, "valueOf"), Q("x", Ki), Q("X", Qi), it("X", function (t, e, n) {
                n._d = new Date(1e3 * parseFloat(t, 10))
            }), it("x", function (t, e, n) {
                n._d = new Date(k(t))
            }), n.version = "2.16.0", i(_e), n.fn = Qo, n.min = ke, n.max = Ce, n.now = Wo, n.utc = f, n.unix = Bn, n.months = Un, n.isDate = l, n.locale = te, n.invalid = v, n.duration = He, n.isMoment = _, n.weekdays = qn, n.parseZone = Wn, n.localeData = ie, n.isDuration = Te, n.monthsShort = Gn, n.weekdaysMin = Kn, n.defineLocale = ee, n.updateLocale = ne, n.locales = oe, n.weekdaysShort = Xn, n.normalizeUnits = N, n.relativeTimeRounding = di, n.relativeTimeThreshold = pi, n.calendarFormat = qe, n.prototype = Qo, n
        })
    }, {}],
    52: [function (t, e, n) {
        "use strict";
        var i = Object.prototype.hasOwnProperty, o = Object.prototype.toString, r = Array.prototype.slice, s = t("./isArguments"), a = Object.prototype.propertyIsEnumerable, l = !a.call({toString: null}, "toString"), u = a.call(function () {
        }, "prototype"), c = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], h = function (t) {
            var e = t.constructor;
            return e && e.prototype === t
        }, f = {
            $console: !0,
            $external: !0,
            $frame: !0,
            $frameElement: !0,
            $frames: !0,
            $innerHeight: !0,
            $innerWidth: !0,
            $outerHeight: !0,
            $outerWidth: !0,
            $pageXOffset: !0,
            $pageYOffset: !0,
            $parent: !0,
            $scrollLeft: !0,
            $scrollTop: !0,
            $scrollX: !0,
            $scrollY: !0,
            $self: !0,
            $webkitIndexedDB: !0,
            $webkitStorageInfo: !0,
            $window: !0
        }, d = function () {
            if ("undefined" == typeof window)return !1;
            for (var t in window)try {
                if (!f["$" + t] && i.call(window, t) && null !== window[t] && "object" == typeof window[t])try {
                    h(window[t])
                } catch (e) {
                    return !0
                }
            } catch (e) {
                return !0
            }
            return !1
        }(), p = function (t) {
            if ("undefined" == typeof window || !d)return h(t);
            try {
                return h(t)
            } catch (e) {
                return !1
            }
        }, y = function (t) {
            var e = null !== t && "object" == typeof t, n = "[object Function]" === o.call(t), r = s(t), a = e && "[object String]" === o.call(t), h = [];
            if (!e && !n && !r)throw new TypeError("Object.keys called on a non-object");
            var f = u && n;
            if (a && t.length > 0 && !i.call(t, 0))for (var d = 0; d < t.length; ++d)h.push(String(d));
            if (r && t.length > 0)for (var y = 0; y < t.length; ++y)h.push(String(y)); else for (var v in t)f && "prototype" === v || !i.call(t, v) || h.push(String(v));
            if (l)for (var m = p(t), g = 0; g < c.length; ++g)m && "constructor" === c[g] || !i.call(t, c[g]) || h.push(c[g]);
            return h;
        };
        y.shim = function () {
            if (Object.keys) {
                var t = function () {
                    return 2 === (Object.keys(arguments) || "").length
                }(1, 2);
                if (!t) {
                    var e = Object.keys;
                    Object.keys = function (t) {
                        return e(s(t) ? r.call(t) : t)
                    }
                }
            } else Object.keys = y;
            return Object.keys || y
        }, e.exports = y
    }, {"./isArguments": 53}],
    53: [function (t, e, n) {
        "use strict";
        var i = Object.prototype.toString;
        e.exports = function (t) {
            var e = i.call(t), n = "[object Arguments]" === e;
            return n || (n = "[object Array]" !== e && null !== t && "object" == typeof t && "number" == typeof t.length && t.length >= 0 && "[object Function]" === i.call(t.callee)), n
        }
    }, {}],
    54: [function (t, e, n) {
        "use strict";
        var i = t("object-keys");
        e.exports = function () {
            if ("function" != typeof Symbol || "function" != typeof Object.getOwnPropertySymbols)return !1;
            if ("symbol" == typeof Symbol.iterator)return !0;
            var t = {}, e = Symbol("test"), n = Object(e);
            if ("string" == typeof e)return !1;
            if ("[object Symbol]" !== Object.prototype.toString.call(e))return !1;
            if ("[object Symbol]" !== Object.prototype.toString.call(n))return !1;
            var o = 42;
            t[e] = o;
            for (e in t)return !1;
            if (0 !== i(t).length)return !1;
            if ("function" == typeof Object.keys && 0 !== Object.keys(t).length)return !1;
            if ("function" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(t).length)return !1;
            var r = Object.getOwnPropertySymbols(t);
            if (1 !== r.length || r[0] !== e)return !1;
            if (!Object.prototype.propertyIsEnumerable.call(t, e))return !1;
            if ("function" == typeof Object.getOwnPropertyDescriptor) {
                var s = Object.getOwnPropertyDescriptor(t, e);
                if (s.value !== o || s.enumerable !== !0)return !1
            }
            return !0
        }
    }, {"object-keys": 52}],
    55: [function (t, e, n) {
        "use strict";
        var i = t("object-keys"), o = t("function-bind"), r = function (t) {
            return "undefined" != typeof t && null !== t
        }, s = t("./hasSymbols")(), a = Object, l = o.call(Function.call, Array.prototype.push), u = o.call(Function.call, Object.prototype.propertyIsEnumerable), c = s ? Object.getOwnPropertySymbols : null;
        e.exports = function (t, e) {
            if (!r(t))throw new TypeError("target must be an object");
            var n, o, h, f, d, p, y, v = a(t);
            for (n = 1; n < arguments.length; ++n) {
                o = a(arguments[n]), f = i(o);
                var m = s && (Object.getOwnPropertySymbols || c);
                if (m)for (d = m(o), h = 0; h < d.length; ++h)y = d[h], u(o, y) && l(f, y);
                for (h = 0; h < f.length; ++h)y = f[h], p = o[y], u(o, y) && (v[y] = p)
            }
            return v
        }
    }, {"./hasSymbols": 54, "function-bind": 8, "object-keys": 52}],
    56: [function (t, e, n) {
        "use strict";
        var i = t("define-properties"), o = t("./implementation"), r = t("./polyfill"), s = t("./shim"), a = r();
        i(a, {implementation: o, getPolyfill: r, shim: s}), e.exports = a
    }, {"./implementation": 55, "./polyfill": 57, "./shim": 58, "define-properties": 4}],
    57: [function (t, e, n) {
        "use strict";
        var i = t("./implementation"), o = function () {
            if (!Object.assign)return !1;
            for (var t = "abcdefghijklmnopqrst", e = t.split(""), n = {}, i = 0; i < e.length; ++i)n[e[i]] = e[i];
            var o = Object.assign({}, n), r = "";
            for (var s in o)r += s;
            return t !== r
        }, r = function () {
            if (!Object.assign || !Object.preventExtensions)return !1;
            var t = Object.preventExtensions({1: 2});
            try {
                Object.assign(t, "xy")
            } catch (e) {
                return "y" === t[1]
            }
            return !1
        };
        e.exports = function () {
            return Object.assign ? o() ? i : r() ? i : Object.assign : i
        }
    }, {"./implementation": 55}],
    58: [function (t, e, n) {
        "use strict";
        var i = t("define-properties"), o = t("./polyfill");
        e.exports = function () {
            var t = o();
            return i(Object, {assign: t}, {
                assign: function () {
                    return Object.assign !== t
                }
            }), t
        }
    }, {"./polyfill": 57, "define-properties": 4}],
    59: [function (t, e, n) {
        var i = t("trim"), o = t("for-each"), r = function (t) {
            return "[object Array]" === Object.prototype.toString.call(t)
        };
        e.exports = function (t) {
            if (!t)return {};
            var e = {};
            return o(i(t).split("\n"), function (t) {
                var n = t.indexOf(":"), o = i(t.slice(0, n)).toLowerCase(), s = i(t.slice(n + 1));
                "undefined" == typeof e[o] ? e[o] = s : r(e[o]) ? e[o].push(s) : e[o] = [e[o], s]
            }), e
        }
    }, {"for-each": 5, trim: 64}],
    60: [function (t, e, n) {
        "use strict";
        var i = t("strict-uri-encode");
        n.extract = function (t) {
            return t.split("?")[1] || ""
        }, n.parse = function (t) {
            return "string" != typeof t ? {} : (t = t.trim().replace(/^(\?|#|&)/, ""), t ? t.split("&").reduce(function (t, e) {
                        var n = e.replace(/\+/g, " ").split("="), i = n.shift(), o = n.length > 0 ? n.join("=") : void 0;
                        return i = decodeURIComponent(i), o = void 0 === o ? null : decodeURIComponent(o), t.hasOwnProperty(i) ? Array.isArray(t[i]) ? t[i].push(o) : t[i] = [t[i], o] : t[i] = o, t
                    }, {}) : {})
        }, n.stringify = function (t) {
            return t ? Object.keys(t).sort().map(function (e) {
                    var n = t[e];
                    return void 0 === n ? "" : null === n ? e : Array.isArray(n) ? n.slice().sort().map(function (t) {
                                    return i(e) + "=" + i(t)
                                }).join("&") : i(e) + "=" + i(n)
                }).filter(function (t) {
                    return t.length > 0
                }).join("&") : ""
        }
    }, {"strict-uri-encode": 63}],
    61: [function (t, e, n) {
        function i(t, e) {
            var n, i = null;
            try {
                n = JSON.parse(t, e)
            } catch (o) {
                i = o
            }
            return [i, n]
        }

        e.exports = i
    }, {}],
    62: [function (t, e, n) {
        (function (t) {
            "use strict";
            !function (t, i) {
                "function" == typeof define && define.amd ? define([], i) : "object" == typeof n ? e.exports = i() : t.store = i()
            }(this, function () {
                function e() {
                    try {
                        return s in o && o[s]
                    } catch (t) {
                        return !1
                    }
                }

                var n, i = {}, o = "undefined" != typeof window ? window : t, r = o.document, s = "localStorage", a = "script";
                if (i.disabled = !1, i.version = "1.3.20", i.set = function (t, e) {
                    }, i.get = function (t, e) {
                    }, i.has = function (t) {
                        return void 0 !== i.get(t)
                    }, i.remove = function (t) {
                    }, i.clear = function () {
                    }, i.transact = function (t, e, n) {
                        null == n && (n = e, e = null), null == e && (e = {});
                        var o = i.get(t, e);
                        n(o), i.set(t, o)
                    }, i.getAll = function () {
                    }, i.forEach = function () {
                    }, i.serialize = function (t) {
                        return JSON.stringify(t)
                    }, i.deserialize = function (t) {
                        if ("string" == typeof t)try {
                            return JSON.parse(t)
                        } catch (e) {
                            return t || void 0
                        }
                    }, e()) n = o[s], i.set = function (t, e) {
                    return void 0 === e ? i.remove(t) : (n.setItem(t, i.serialize(e)), e)
                }, i.get = function (t, e) {
                    var o = i.deserialize(n.getItem(t));
                    return void 0 === o ? e : o
                }, i.remove = function (t) {
                    n.removeItem(t)
                }, i.clear = function () {
                    n.clear()
                }, i.getAll = function () {
                    var t = {};
                    return i.forEach(function (e, n) {
                        t[e] = n
                    }), t
                }, i.forEach = function (t) {
                    for (var e = 0; e < n.length; e++) {
                        var o = n.key(e);
                        t(o, i.get(o))
                    }
                }; else if (r && r.documentElement.addBehavior) {
                    var l, u;
                    try {
                        u = new ActiveXObject("htmlfile"), u.open(), u.write("<" + a + ">document.w=window</" + a + '><iframe src="/favicon.ico"></iframe>'), u.close(), l = u.w.frames[0].document, n = l.createElement("div")
                    } catch (c) {
                        n = r.createElement("div"), l = r.body
                    }
                    var h = function (t) {
                        return function () {
                            var e = Array.prototype.slice.call(arguments, 0);
                            e.unshift(n), l.appendChild(n), n.addBehavior("#default#userData"), n.load(s);
                            var o = t.apply(i, e);
                            return l.removeChild(n), o
                        }
                    }, f = new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]", "g"), d = function (t) {
                        return t.replace(/^d/, "___$&").replace(f, "___")
                    };
                    i.set = h(function (t, e, n) {
                        return e = d(e), void 0 === n ? i.remove(e) : (t.setAttribute(e, i.serialize(n)), t.save(s), n)
                    }), i.get = h(function (t, e, n) {
                        e = d(e);
                        var o = i.deserialize(t.getAttribute(e));
                        return void 0 === o ? n : o
                    }), i.remove = h(function (t, e) {
                        e = d(e), t.removeAttribute(e), t.save(s)
                    }), i.clear = h(function (t) {
                        var e = t.XMLDocument.documentElement.attributes;
                        t.load(s);
                        for (var n = e.length - 1; n >= 0; n--)t.removeAttribute(e[n].name);
                        t.save(s)
                    }), i.getAll = function (t) {
                        var e = {};
                        return i.forEach(function (t, n) {
                            e[t] = n
                        }), e
                    }, i.forEach = h(function (t, e) {
                        for (var n, o = t.XMLDocument.documentElement.attributes, r = 0; n = o[r]; ++r)e(n.name, i.deserialize(t.getAttribute(n.name)))
                    })
                }
                try {
                    var p = "__storejs__";
                    i.set(p, p), i.get(p) != p && (i.disabled = !0), i.remove(p)
                } catch (c) {
                    i.disabled = !0
                }
                return i.enabled = !i.disabled, i
            })
        }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {})
    }, {}],
    63: [function (t, e, n) {
        "use strict";
        e.exports = function (t) {
            return encodeURIComponent(t).replace(/[!'()*]/g, function (t) {
                return "%" + t.charCodeAt(0).toString(16).toUpperCase()
            })
        }
    }, {}],
    64: [function (t, e, n) {
        function i(t) {
            return t.replace(/^\s*|\s*$/g, "")
        }

        n = e.exports = i, n.left = function (t) {
            return t.replace(/^\s*/, "")
        }, n.right = function (t) {
            return t.replace(/\s*$/, "")
        }
    }, {}],
    65: [function (t, e, n) {
        function i(t) {
            return t.replace(/\n\r?\s*/g, "")
        }

        e.exports = function (t) {
            for (var e = "", n = 0; n < arguments.length; n++)e += i(t[n]) + (arguments[n + 1] || "");
            return e
        }
    }, {}],
    66: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./button.js"), l = i(a), u = t("./component.js"), c = i(u), h = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-big-play-button"
            }, e.prototype.handleClick = function () {
                this.player_.play()
            }, e
        }(l["default"]);
        h.prototype.controlText_ = "Play Video", c["default"].registerComponent("BigPlayButton", h), n["default"] = h
    }, {"./button.js": 67, "./component.js": 70}],
    67: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./clickable-component.js"), l = i(a), u = t("./component"), c = i(u), h = t("./utils/log.js"), f = i(h), d = t("object.assign"), p = i(d), y = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "button", e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
                e = (0, p["default"])({className: this.buildCSSClass()}, e), "button" !== t && (f["default"].warn("Creating a Button with an HTML element of " + t + " is deprecated; use ClickableComponent instead."), e = (0, p["default"])({tabIndex: 0}, e), n = (0, p["default"])({role: "button"}, n)), n = (0, p["default"])({
                    type: "button",
                    "aria-live": "polite"
                }, n);
                var i = c["default"].prototype.createEl.call(this, t, e, n);
                return this.createControlTextEl(i), i
            }, e.prototype.addChild = function (t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = this.constructor.name;
                return f["default"].warn("Adding an actionable (user controllable) child to a Button (" + n + ") is not supported; use a ClickableComponent instead."), c["default"].prototype.addChild.call(this, t, e)
            }, e.prototype.enable = function () {
                t.prototype.enable.call(this), this.el_.removeAttribute("disabled")
            }, e.prototype.disable = function () {
                t.prototype.disable.call(this), this.el_.setAttribute("disabled", "disabled")
            }, e.prototype.handleKeyPress = function (e) {
                32 !== e.which && 13 !== e.which && t.prototype.handleKeyPress.call(this, e)
            }, e
        }(l["default"]);
        c["default"].registerComponent("Button", y), n["default"] = y
    }, {"./clickable-component.js": 68, "./component": 70, "./utils/log.js": 152, "object.assign": 56}],
    68: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./component"), u = o(l), c = t("./utils/dom.js"), h = i(c), f = t("./utils/events.js"), d = i(f), p = t("./utils/fn.js"), y = i(p), v = t("./utils/log.js"), m = o(v), g = t("global/document"), b = o(g), _ = t("object.assign"), w = o(_), k = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.emitTapEvents(), o.enable(), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "div", n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
                n = (0, w["default"])({
                    className: this.buildCSSClass(),
                    tabIndex: 0
                }, n), "button" === e && m["default"].error("Creating a ClickableComponent with an HTML element of " + e + " is not supported; use a Button instead."), i = (0, w["default"])({
                    role: "button",
                    "aria-live": "polite"
                }, i), this.tabIndex_ = n.tabIndex;
                var o = t.prototype.createEl.call(this, e, n, i);
                return this.createControlTextEl(o), o
            }, e.prototype.createControlTextEl = function (t) {
                return this.controlTextEl_ = h.createEl("span", {className: "vjs-control-text"}), t && t.appendChild(this.controlTextEl_), this.controlText(this.controlText_, t), this.controlTextEl_
            }, e.prototype.controlText = function (t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.el();
                if (!t)return this.controlText_ || "Need Text";
                var n = this.localize(t);
                return this.controlText_ = t, this.controlTextEl_.innerHTML = n, e.setAttribute("title", n), this
            }, e.prototype.buildCSSClass = function () {
                return "vjs-control vjs-button " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.enable = function () {
                return this.removeClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "false"), "undefined" != typeof this.tabIndex_ && this.el_.setAttribute("tabIndex", this.tabIndex_), this.on("tap", this.handleClick), this.on("click", this.handleClick), this.on("focus", this.handleFocus), this.on("blur", this.handleBlur), this
            }, e.prototype.disable = function () {
                return this.addClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "true"), "undefined" != typeof this.tabIndex_ && this.el_.removeAttribute("tabIndex"), this.off("tap", this.handleClick), this.off("click", this.handleClick), this.off("focus", this.handleFocus), this.off("blur", this.handleBlur), this
            }, e.prototype.handleClick = function () {
            }, e.prototype.handleFocus = function () {
                d.on(b["default"], "keydown", y.bind(this, this.handleKeyPress))
            }, e.prototype.handleKeyPress = function (e) {
                32 === e.which || 13 === e.which ? (e.preventDefault(), this.handleClick(e)) : t.prototype.handleKeyPress && t.prototype.handleKeyPress.call(this, e)
            }, e.prototype.handleBlur = function () {
                d.off(b["default"], "keydown", y.bind(this, this.handleKeyPress))
            }, e
        }(u["default"]);
        u["default"].registerComponent("ClickableComponent", k), n["default"] = k
    }, {
        "./component": 70,
        "./utils/dom.js": 147,
        "./utils/events.js": 148,
        "./utils/fn.js": 149,
        "./utils/log.js": 152,
        "global/document": 9,
        "object.assign": 56
    }],
    69: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./button"), l = i(a), u = t("./component"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.controlText(i && i.controlText || s.localize("Close")), s
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-close-button " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleClick = function () {
                this.trigger({type: "close", bubbles: !1})
            }, e
        }(l["default"]);
        c["default"].registerComponent("CloseButton", h), n["default"] = h
    }, {"./button": 67, "./component": 70}],
    70: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        n.__esModule = !0;
        var s = t("global/window"), a = o(s), l = t("./utils/dom.js"), u = i(l), c = t("./utils/fn.js"), h = i(c), f = t("./utils/guid.js"), d = i(f), p = t("./utils/events.js"), y = i(p), v = t("./utils/log.js"), m = o(v), g = t("./utils/to-title-case.js"), b = o(g), _ = t("./utils/merge-options.js"), w = o(_), k = function () {
            function t(e, n, i) {
                if (r(this, t), !e && this.play ? this.player_ = e = this : this.player_ = e, this.options_ = (0, w["default"])({}, this.options_), n = this.options_ = (0, w["default"])(this.options_, n), this.id_ = n.id || n.el && n.el.id, !this.id_) {
                    var o = e && e.id && e.id() || "no_player";
                    this.id_ = o + "_component_" + d.newGUID()
                }
                this.name_ = n.name || null, n.el ? this.el_ = n.el : n.createEl !== !1 && (this.el_ = this.createEl()), this.children_ = [], this.childIndex_ = {}, this.childNameIndex_ = {}, n.initChildren !== !1 && this.initChildren(), this.ready(i), n.reportTouchActivity !== !1 && this.enableTouchActivity()
            }

            return t.prototype.dispose = function () {
                if (this.trigger({
                        type: "dispose",
                        bubbles: !1
                    }), this.children_)for (var t = this.children_.length - 1; t >= 0; t--)this.children_[t].dispose && this.children_[t].dispose();
                this.children_ = null, this.childIndex_ = null, this.childNameIndex_ = null, this.off(), this.el_.parentNode && this.el_.parentNode.removeChild(this.el_), u.removeElData(this.el_), this.el_ = null
            }, t.prototype.player = function () {
                return this.player_
            }, t.prototype.options = function (t) {
                return m["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"), t ? (this.options_ = (0, w["default"])(this.options_, t), this.options_) : this.options_
            }, t.prototype.el = function () {
                return this.el_
            }, t.prototype.createEl = function (t, e, n) {
                return u.createEl(t, e, n)
            }, t.prototype.localize = function (t) {
                var e = this.player_.language && this.player_.language(), n = this.player_.languages && this.player_.languages();
                if (!e || !n)return t;
                var i = n[e];
                if (i && i[t])return i[t];
                var o = e.split("-")[0], r = n[o];
                return r && r[t] ? r[t] : t
            }, t.prototype.contentEl = function () {
                return this.contentEl_ || this.el_
            }, t.prototype.id = function () {
                return this.id_
            }, t.prototype.name = function () {
                return this.name_
            }, t.prototype.children = function () {
                return this.children_
            }, t.prototype.getChildById = function (t) {
                return this.childIndex_[t]
            }, t.prototype.getChild = function (t) {
                if (t)return t = (0, b["default"])(t), this.childNameIndex_[t]
            }, t.prototype.addChild = function (e) {
                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.children_.length, o = void 0, r = void 0;
                if ("string" == typeof e) {
                    r = (0, b["default"])(e), n || (n = {}), n === !0 && (m["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."), n = {});
                    var s = n.componentClass || r;
                    n.name = r;
                    var a = t.getComponent(s);
                    if (!a)throw new Error("Component " + s + " does not exist");
                    if ("function" != typeof a)return null;
                    o = new a(this.player_ || this, n)
                } else o = e;
                if (this.children_.splice(i, 0, o), "function" == typeof o.id && (this.childIndex_[o.id()] = o), r = r || o.name && o.name(), r && (this.childNameIndex_[r] = o), "function" == typeof o.el && o.el()) {
                    var l = this.contentEl().children, u = l[i] || null;
                    this.contentEl().insertBefore(o.el(), u)
                }
                return o
            }, t.prototype.removeChild = function (t) {
                if ("string" == typeof t && (t = this.getChild(t)), t && this.children_) {
                    for (var e = !1, n = this.children_.length - 1; n >= 0; n--)if (this.children_[n] === t) {
                        e = !0, this.children_.splice(n, 1);
                        break
                    }
                    if (e) {
                        this.childIndex_[t.id()] = null, this.childNameIndex_[t.name()] = null;
                        var i = t.el();
                        i && i.parentNode === this.contentEl() && this.contentEl().removeChild(t.el())
                    }
                }
            }, t.prototype.initChildren = function () {
                var e = this, n = this.options_.children;
                n && !function () {
                    var i = e.options_, o = function (t) {
                        var n = t.name, o = t.opts;
                        if (void 0 !== i[n] && (o = i[n]), o !== !1) {
                            o === !0 && (o = {}), o.playerOptions = e.options_.playerOptions;
                            var r = e.addChild(n, o);
                            r && (e[n] = r)
                        }
                    }, r = void 0, s = t.getComponent("Tech");
                    r = Array.isArray(n) ? n : Object.keys(n), r.concat(Object.keys(e.options_).filter(function (t) {
                        return !r.some(function (e) {
                            return "string" == typeof e ? t === e : t === e.name
                        })
                    })).map(function (t) {
                        var i = void 0, o = void 0;
                        return "string" == typeof t ? (i = t, o = n[i] || e.options_[i] || {}) : (i = t.name, o = t), {
                            name: i,
                            opts: o
                        }
                    }).filter(function (e) {
                        var n = t.getComponent(e.opts.componentClass || (0, b["default"])(e.name));
                        return n && !s.isTech(n)
                    }).forEach(o)
                }()
            }, t.prototype.buildCSSClass = function () {
                return ""
            }, t.prototype.on = function (t, e, n) {
                var i = this;
                return "string" == typeof t || Array.isArray(t) ? y.on(this.el_, t, h.bind(this, e)) : !function () {
                        var o = t, r = e, s = h.bind(i, n), a = function () {
                            return i.off(o, r, s)
                        };
                        a.guid = s.guid, i.on("dispose", a);
                        var l = function () {
                            return i.off("dispose", a)
                        };
                        l.guid = s.guid, t.nodeName ? (y.on(o, r, s), y.on(o, "dispose", l)) : "function" == typeof t.on && (o.on(r, s), o.on("dispose", l))
                    }(), this
            }, t.prototype.off = function (t, e, n) {
                if (!t || "string" == typeof t || Array.isArray(t)) y.off(this.el_, t, e); else {
                    var i = t, o = e, r = h.bind(this, n);
                    this.off("dispose", r), t.nodeName ? (y.off(i, o, r), y.off(i, "dispose", r)) : (i.off(o, r), i.off("dispose", r))
                }
                return this
            }, t.prototype.one = function (t, e, n) {
                var i = this, o = arguments;
                return "string" == typeof t || Array.isArray(t) ? y.one(this.el_, t, h.bind(this, e)) : !function () {
                        var r = t, s = e, a = h.bind(i, n), l = function u() {
                            i.off(r, s, u), a.apply(null, o)
                        };
                        l.guid = a.guid, i.on(r, s, l)
                    }(), this
            }, t.prototype.trigger = function (t, e) {
                return y.trigger(this.el_, t, e), this
            }, t.prototype.ready = function (t) {
                var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                return t && (this.isReady_ ? e ? t.call(this) : this.setTimeout(t, 1) : (this.readyQueue_ = this.readyQueue_ || [], this.readyQueue_.push(t))), this
            }, t.prototype.triggerReady = function () {
                this.isReady_ = !0, this.setTimeout(function () {
                    var t = this.readyQueue_;
                    this.readyQueue_ = [], t && t.length > 0 && t.forEach(function (t) {
                        t.call(this)
                    }, this), this.trigger("ready")
                }, 1)
            }, t.prototype.$ = function (t, e) {
                return u.$(t, e || this.contentEl())
            }, t.prototype.$$ = function (t, e) {
                return u.$$(t, e || this.contentEl())
            }, t.prototype.hasClass = function (t) {
                return u.hasElClass(this.el_, t)
            }, t.prototype.addClass = function (t) {
                return u.addElClass(this.el_, t), this
            }, t.prototype.removeClass = function (t) {
                return u.removeElClass(this.el_, t), this
            }, t.prototype.toggleClass = function (t, e) {
                return u.toggleElClass(this.el_, t, e), this
            }, t.prototype.show = function () {
                return this.removeClass("vjs-hidden"), this
            }, t.prototype.hide = function () {
                return this.addClass("vjs-hidden"), this
            }, t.prototype.lockShowing = function () {
                return this.addClass("vjs-lock-showing"), this
            }, t.prototype.unlockShowing = function () {
                return this.removeClass("vjs-lock-showing"), this
            }, t.prototype.getAttribute = function (t) {
                return u.getAttribute(this.el_, t)
            }, t.prototype.setAttribute = function (t, e) {
                return u.setAttribute(this.el_, t, e), this
            }, t.prototype.removeAttribute = function (t) {
                return u.removeAttribute(this.el_, t), this
            }, t.prototype.width = function (t, e) {
                return this.dimension("width", t, e)
            }, t.prototype.height = function (t, e) {
                return this.dimension("height", t, e)
            }, t.prototype.dimensions = function (t, e) {
                return this.width(t, !0).height(e)
            }, t.prototype.dimension = function (t, e, n) {
                if (void 0 !== e)return null !== e && e === e || (e = 0), ("" + e).indexOf("%") !== -1 || ("" + e).indexOf("px") !== -1 ? this.el_.style[t] = e : "auto" === e ? this.el_.style[t] = "" : this.el_.style[t] = e + "px", n || this.trigger("resize"), this;
                if (!this.el_)return 0;
                var i = this.el_.style[t], o = i.indexOf("px");
                return o !== -1 ? parseInt(i.slice(0, o), 10) : parseInt(this.el_["offset" + (0, b["default"])(t)], 10)
            }, t.prototype.currentDimension = function (t) {
                var e = 0;
                if ("width" !== t && "height" !== t)throw new Error("currentDimension only accepts width or height value");
                if ("function" == typeof a["default"].getComputedStyle) {
                    var n = a["default"].getComputedStyle(this.el_);
                    e = n.getPropertyValue(t) || n[t]
                }
                if (e = parseFloat(e), 0 === e) {
                    var i = "offset" + (0, b["default"])(t);
                    e = this.el_[i]
                }
                return e
            }, t.prototype.currentDimensions = function () {
                return {width: this.currentDimension("width"), height: this.currentDimension("height")}
            }, t.prototype.currentWidth = function () {
                return this.currentDimension("width")
            }, t.prototype.currentHeight = function () {
                return this.currentDimension("height")
            }, t.prototype.emitTapEvents = function () {
                var t = 0, e = null, n = 10, i = 200, o = void 0;
                this.on("touchstart", function (n) {
                    1 === n.touches.length && (e = {
                        pageX: n.touches[0].pageX,
                        pageY: n.touches[0].pageY
                    }, t = (new Date).getTime(), o = !0)
                }), this.on("touchmove", function (t) {
                    if (t.touches.length > 1) o = !1; else if (e) {
                        var i = t.touches[0].pageX - e.pageX, r = t.touches[0].pageY - e.pageY, s = Math.sqrt(i * i + r * r);
                        s > n && (o = !1)
                    }
                });
                var r = function () {
                    o = !1
                };
                this.on("touchleave", r), this.on("touchcancel", r), this.on("touchend", function (n) {
                    if (e = null, o === !0) {
                        var r = (new Date).getTime() - t;
                        r < i && (n.preventDefault(), this.trigger("tap"))
                    }
                })
            }, t.prototype.enableTouchActivity = function () {
                if (this.player() && this.player().reportUserActivity) {
                    var t = h.bind(this.player(), this.player().reportUserActivity), e = void 0;
                    this.on("touchstart", function () {
                        t(), this.clearInterval(e), e = this.setInterval(t, 250)
                    });
                    var n = function (n) {
                        t(), this.clearInterval(e)
                    };
                    this.on("touchmove", t), this.on("touchend", n), this.on("touchcancel", n)
                }
            }, t.prototype.setTimeout = function (t, e) {
                t = h.bind(this, t);
                var n = a["default"].setTimeout(t, e), i = function () {
                    this.clearTimeout(n)
                };
                return i.guid = "vjs-timeout-" + n, this.on("dispose", i), n
            }, t.prototype.clearTimeout = function (t) {
                a["default"].clearTimeout(t);
                var e = function () {
                };
                return e.guid = "vjs-timeout-" + t, this.off("dispose", e), t
            }, t.prototype.setInterval = function (t, e) {
                t = h.bind(this, t);
                var n = a["default"].setInterval(t, e), i = function () {
                    this.clearInterval(n)
                };
                return i.guid = "vjs-interval-" + n, this.on("dispose", i), n
            }, t.prototype.clearInterval = function (t) {
                a["default"].clearInterval(t);
                var e = function () {
                };
                return e.guid = "vjs-interval-" + t, this.off("dispose", e), t
            }, t.registerComponent = function (e, n) {
                if (e)return e = (0, b["default"])(e), t.components_ || (t.components_ = {}), t.components_[e] = n, n
            }, t.getComponent = function (e) {
                if (e)return e = (0, b["default"])(e), t.components_ && t.components_[e] ? t.components_[e] : a["default"] && a["default"].videojs && a["default"].videojs[e] ? (m["default"].warn("The " + e + " component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"), a["default"].videojs[e]) : void 0
            }, t.extend = function (e) {
                e = e || {}, m["default"].warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead");
                var n = e.init || e.init || this.prototype.init || this.prototype.init || function () {
                    }, i = function () {
                    n.apply(this, arguments)
                };
                i.prototype = Object.create(this.prototype), i.prototype.constructor = i, i.extend = t.extend;
                for (var o in e)e.hasOwnProperty(o) && (i.prototype[o] = e[o]);
                return i
            }, t
        }();
        k.registerComponent("Component", k), n["default"] = k
    }, {
        "./utils/dom.js": 147,
        "./utils/events.js": 148,
        "./utils/fn.js": 149,
        "./utils/guid.js": 151,
        "./utils/log.js": 152,
        "./utils/merge-options.js": 153,
        "./utils/to-title-case.js": 157,
        "global/window": 10
    }],
    71: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../track-button.js"), l = i(a), u = t("../../component.js"), c = i(u), h = t("./audio-track-menu-item.js"), f = i(h), d = function (t) {
            function e(n) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                o(this, e), i.tracks = n.audioTracks && n.audioTracks();
                var s = r(this, t.call(this, n, i));
                return s.el_.setAttribute("aria-label", "Audio Menu"), s
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-audio-button " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.createItems = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e = this.player_.audioTracks && this.player_.audioTracks();
                if (!e)return t;
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    t.push(new f["default"](this.player_, {track: i, selectable: !0}))
                }
                return t
            }, e
        }(l["default"]);
        d.prototype.controlText_ = "Audio Track", c["default"].registerComponent("AudioTrackButton", d), n["default"] = d
    }, {"../../component.js": 70, "../track-button.js": 101, "./audio-track-menu-item.js": 72}],
    72: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../menu/menu-item.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("../../utils/fn.js"), d = i(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = i.track, a = n.audioTracks();
                i.label = o.label || o.language || "Unknown", i.selected = o.enabled;
                var l = s(this, t.call(this, n, i));
                return l.track = o, a && !function () {
                    var t = d.bind(l, l.handleTracksChange);
                    a.addEventListener("change", t), l.on("dispose", function () {
                        a.removeEventListener("change", t)
                    })
                }(), l
            }

            return a(e, t), e.prototype.handleClick = function (e) {
                var n = this.player_.audioTracks();
                if (t.prototype.handleClick.call(this, e), n)for (var i = 0; i < n.length; i++) {
                    var o = n[i];
                    o.enabled = o === this.track
                }
            }, e.prototype.handleTracksChange = function (t) {
                this.selected(this.track.enabled)
            }, e
        }(u["default"]);
        h["default"].registerComponent("AudioTrackMenuItem", p), n["default"] = p
    }, {"../../component.js": 70, "../../menu/menu-item.js": 113, "../../utils/fn.js": 149}],
    73: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../component.js"), l = i(a);
        t("./play-toggle.js"), t("./time-controls/current-time-display.js"), t("./time-controls/duration-display.js"), t("./time-controls/time-divider.js"), t("./time-controls/remaining-time-display.js"), t("./live-display.js"), t("./progress-control/progress-control.js"), t("./fullscreen-toggle.js"), t("./volume-control/volume-control.js"), t("./volume-menu-button.js"), t("./mute-toggle.js"), t("./text-track-controls/chapters-button.js"), t("./text-track-controls/descriptions-button.js"), t("./text-track-controls/subtitles-button.js"), t("./text-track-controls/captions-button.js"), t("./audio-track-controls/audio-track-button.js"), t("./playback-rate-menu/playback-rate-menu-button.js"), t("./spacer-controls/custom-control-spacer.js");
        var u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: "vjs-control-bar",
                    dir: "ltr"
                }, {role: "group"})
            }, e
        }(l["default"]);
        u.prototype.options_ = {
            children: ["playToggle", "volumeMenuButton", "currentTimeDisplay", "timeDivider", "durationDisplay", "progressControl", "liveDisplay", "remainingTimeDisplay", "customControlSpacer", "playbackRateMenuButton", "chaptersButton", "descriptionsButton", "subtitlesButton", "captionsButton", "audioTrackButton", "fullscreenToggle"]
        }, l["default"].registerComponent("ControlBar", u), n["default"] = u
    }, {
        "../component.js": 70,
        "./audio-track-controls/audio-track-button.js": 71,
        "./fullscreen-toggle.js": 74,
        "./live-display.js": 75,
        "./mute-toggle.js": 76,
        "./play-toggle.js": 77,
        "./playback-rate-menu/playback-rate-menu-button.js": 78,
        "./progress-control/progress-control.js": 83,
        "./spacer-controls/custom-control-spacer.js": 86,
        "./text-track-controls/captions-button.js": 89,
        "./text-track-controls/chapters-button.js": 90,
        "./text-track-controls/descriptions-button.js": 92,
        "./text-track-controls/subtitles-button.js": 94,
        "./time-controls/current-time-display.js": 97,
        "./time-controls/duration-display.js": 98,
        "./time-controls/remaining-time-display.js": 99,
        "./time-controls/time-divider.js": 100,
        "./volume-control/volume-control.js": 103,
        "./volume-menu-button.js": 105
    }],
    74: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../button.js"), l = i(a), u = t("../component.js"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.on(n, "fullscreenchange", s.handleFullscreenChange), s
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-fullscreen-control " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleFullscreenChange = function () {
                this.player_.isFullscreen() ? this.controlText("Non-Fullscreen") : this.controlText("Fullscreen")
            }, e.prototype.handleClick = function () {
                this.player_.isFullscreen() ? this.player_.exitFullscreen() : this.player_.requestFullscreen()
            }, e
        }(l["default"]);
        h.prototype.controlText_ = "Fullscreen", c["default"].registerComponent("FullscreenToggle", h), n["default"] = h
    }, {"../button.js": 67, "../component.js": 70}],
    75: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../component"), u = o(l), c = t("../utils/dom.js"), h = i(c), f = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.updateShowing(), o.on(o.player(), "durationchange", o.updateShowing), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, "div", {className: "vjs-live-control vjs-control"});
                return this.contentEl_ = h.createEl("div", {
                    className: "vjs-live-display",
                    innerHTML: '<span class="vjs-control-text">' + this.localize("Stream Type") + "</span>" + this.localize("LIVE")
                }, {"aria-live": "off"}), e.appendChild(this.contentEl_), e
            }, e.prototype.updateShowing = function () {
                this.player().duration() === 1 / 0 ? this.show() : this.hide()
            }, e
        }(u["default"]);
        u["default"].registerComponent("LiveDisplay", f), n["default"] = f
    }, {"../component": 70, "../utils/dom.js": 147}],
    76: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../button"), u = o(l), c = t("../component"), h = o(c), f = t("../utils/dom.js"), d = i(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "volumechange", o.update), n.tech_ && n.tech_.featuresVolumeControl === !1 && o.addClass("vjs-hidden"), o.on(n, "loadstart", function () {
                    this.update(), n.tech_.featuresVolumeControl === !1 ? this.addClass("vjs-hidden") : this.removeClass("vjs-hidden")
                }), o
            }

            return a(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-mute-control " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleClick = function () {
                this.player_.muted(!this.player_.muted())
            }, e.prototype.update = function () {
                var t = this.player_.volume(), e = 3;
                0 === t || this.player_.muted() ? e = 0 : t < .33 ? e = 1 : t < .67 && (e = 2);
                var n = this.player_.muted() ? "Unmute" : "Mute";
                this.controlText() !== n && this.controlText(n);
                for (var i = 0; i < 4; i++)d.removeElClass(this.el_, "vjs-vol-" + i);
                d.addElClass(this.el_, "vjs-vol-" + e)
            }, e
        }(u["default"]);
        p.prototype.controlText_ = "Mute", h["default"].registerComponent("MuteToggle", p), n["default"] = p
    }, {"../button": 67, "../component": 70, "../utils/dom.js": 147}],
    77: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../button.js"), l = i(a), u = t("../component.js"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.on(n, "play", s.handlePlay), s.on(n, "pause", s.handlePause), s
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-play-control " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleClick = function () {
                this.player_.paused() ? this.player_.play() : this.player_.pause()
            }, e.prototype.handlePlay = function () {
                this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.controlText("Pause")
            }, e.prototype.handlePause = function () {
                this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.controlText("Play")
            }, e
        }(l["default"]);
        h.prototype.controlText_ = "Play", c["default"].registerComponent("PlayToggle", h), n["default"] = h
    }, {"../button.js": 67, "../component.js": 70}],
    78: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../menu/menu-button.js"), u = o(l), c = t("../../menu/menu.js"), h = o(c), f = t("./playback-rate-menu-item.js"), d = o(f), p = t("../../component.js"), y = o(p), v = t("../../utils/dom.js"), m = i(v), g = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.updateVisibility(), o.updateLabel(), o.on(n, "loadstart", o.updateVisibility), o.on(n, "ratechange", o.updateLabel), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this);
                return this.labelEl_ = m.createEl("div", {
                    className: "vjs-playback-rate-value",
                    innerHTML: 1
                }), e.appendChild(this.labelEl_), e
            }, e.prototype.buildCSSClass = function () {
                return "vjs-playback-rate " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.createMenu = function () {
                var t = new h["default"](this.player()), e = this.playbackRates();
                if (e)for (var n = e.length - 1; n >= 0; n--)t.addChild(new d["default"](this.player(), {rate: e[n] + "x"}));
                return t
            }, e.prototype.updateARIAAttributes = function () {
                this.el().setAttribute("aria-valuenow", this.player().playbackRate())
            }, e.prototype.handleClick = function () {
                for (var t = this.player().playbackRate(), e = this.playbackRates(), n = e[0], i = 0; i < e.length; i++)if (e[i] > t) {
                    n = e[i];
                    break
                }
                this.player().playbackRate(n)
            }, e.prototype.playbackRates = function () {
                return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates
            }, e.prototype.playbackRateSupported = function () {
                return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0
            }, e.prototype.updateVisibility = function () {
                this.playbackRateSupported() ? this.removeClass("vjs-hidden") : this.addClass("vjs-hidden")
            }, e.prototype.updateLabel = function () {
                this.playbackRateSupported() && (this.labelEl_.innerHTML = this.player().playbackRate() + "x")
            }, e
        }(u["default"]);
        g.prototype.controlText_ = "Playback Rate", y["default"].registerComponent("PlaybackRateMenuButton", g), n["default"] = g
    }, {
        "../../component.js": 70,
        "../../menu/menu-button.js": 112,
        "../../menu/menu.js": 114,
        "../../utils/dom.js": 147,
        "./playback-rate-menu-item.js": 79
    }],
    79: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../menu/menu-item.js"), l = i(a), u = t("../../component.js"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e);
                var s = i.rate, a = parseFloat(s, 10);
                i.label = s, i.selected = 1 === a;
                var l = r(this, t.call(this, n, i));
                return l.label = s, l.rate = a, l.on(n, "ratechange", l.update), l
            }

            return s(e, t), e.prototype.handleClick = function () {
                t.prototype.handleClick.call(this), this.player().playbackRate(this.rate)
            }, e.prototype.update = function () {
                this.selected(this.player().playbackRate() === this.rate)
            }, e
        }(l["default"]);
        h.prototype.contentElType = "button", c["default"].registerComponent("PlaybackRateMenuItem", h), n["default"] = h
    }, {"../../component.js": 70, "../../menu/menu-item.js": 113}],
    80: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/dom.js"), h = i(c), f = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.partEls_ = [], o.on(n, "progress", o.update), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: "vjs-load-progress",
                    innerHTML: '<span class="vjs-control-text"><span>' + this.localize("Loaded") + "</span>: 0%</span>"
                })
            }, e.prototype.update = function () {
                var t = this.player_.buffered(), e = this.player_.duration(), n = this.player_.bufferedEnd(), i = this.partEls_, o = function (t, e) {
                    var n = t / e || 0;
                    return 100 * (n >= 1 ? 1 : n) + "%"
                };
                this.el_.style.width = o(n, e);
                for (var r = 0; r < t.length; r++) {
                    var s = t.start(r), a = t.end(r), l = i[r];
                    l || (l = this.el_.appendChild(h.createEl()), i[r] = l), l.style.left = o(s, n), l.style.width = o(a - s, n)
                }
                for (var u = i.length; u > t.length; u--)this.el_.removeChild(i[u - 1]);
                i.length = t.length
            }, e
        }(u["default"]);
        u["default"].registerComponent("LoadProgressBar", f), n["default"] = f
    }, {"../../component.js": 70, "../../utils/dom.js": 147}],
    81: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/dom.js"), h = i(c), f = t("../../utils/fn.js"), d = i(f), p = t("../../utils/format-time.js"), y = o(p), v = t("lodash-compat/function/throttle"), m = o(v), g = t("../../utils/computed-style.js"), b = o(g), _ = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return i.playerOptions && i.playerOptions.controlBar && i.playerOptions.controlBar.progressControl && i.playerOptions.controlBar.progressControl.keepTooltipsInside && (o.keepTooltipsInside = i.playerOptions.controlBar.progressControl.keepTooltipsInside), o.keepTooltipsInside && (o.tooltip = h.createEl("div", {className: "vjs-time-tooltip"}), o.el().appendChild(o.tooltip), o.addClass("vjs-keep-tooltips-inside")), o.update(0, 0), n.on("ready", function () {
                    o.on(n.controlBar.progressControl.el(), "mousemove", (0, m["default"])(d.bind(o, o.handleMouseMove), 25))
                }), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-mouse-display"})
            }, e.prototype.handleMouseMove = function (t) {
                var e = this.player_.duration(), n = this.calculateDistance(t) * e, i = t.pageX - h.findElPosition(this.el().parentNode).left;
                this.update(n, i)
            }, e.prototype.update = function (t, e) {
                var n = (0, y["default"])(t, this.player_.duration());
                if (this.el().style.left = e + "px", this.el().setAttribute("data-current-time", n), this.keepTooltipsInside) {
                    var i = this.clampPosition_(e), o = e - i + 1, r = parseFloat((0, b["default"])(this.tooltip, "width")), s = r / 2;
                    this.tooltip.innerHTML = n, this.tooltip.style.right = "-" + (s - o) + "px"
                }
            }, e.prototype.calculateDistance = function (t) {
                return h.getPointerPosition(this.el().parentNode, t).x
            }, e.prototype.clampPosition_ = function (t) {
                if (!this.keepTooltipsInside)return t;
                var e = parseFloat((0, b["default"])(this.player().el(), "width")), n = parseFloat((0, b["default"])(this.tooltip, "width")), i = n / 2, o = t;
                return t < i ? o = Math.ceil(i) : t > e - i && (o = Math.floor(e - i)), o
            }, e
        }(u["default"]);
        u["default"].registerComponent("MouseTimeDisplay", _), n["default"] = _
    }, {
        "../../component.js": 70,
        "../../utils/computed-style.js": 146,
        "../../utils/dom.js": 147,
        "../../utils/fn.js": 149,
        "../../utils/format-time.js": 150,
        "lodash-compat/function/throttle": 15
    }],
    82: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/fn.js"), h = i(c), f = t("../../utils/format-time.js"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.updateDataAttr(), o.on(n, "timeupdate", o.updateDataAttr), n.ready(h.bind(o, o.updateDataAttr)), i.playerOptions && i.playerOptions.controlBar && i.playerOptions.controlBar.progressControl && i.playerOptions.controlBar.progressControl.keepTooltipsInside && (o.keepTooltipsInside = i.playerOptions.controlBar.progressControl.keepTooltipsInside), o.keepTooltipsInside && o.addClass("vjs-keep-tooltips-inside"), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: "vjs-play-progress vjs-slider-bar",
                    innerHTML: '<span class="vjs-control-text"><span>' + this.localize("Progress") + "</span>: 0%</span>"
                })
            }, e.prototype.updateDataAttr = function () {
                var t = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
                this.el_.setAttribute("data-current-time", (0, d["default"])(t, this.player_.duration()))
            }, e
        }(u["default"]);
        u["default"].registerComponent("PlayProgressBar", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/fn.js": 149, "../../utils/format-time.js": 150}],
    83: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../component.js"), l = i(a);
        t("./seek-bar.js"), t("./mouse-time-display.js");
        var u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-progress-control vjs-control"})
            }, e
        }(l["default"]);
        u.prototype.options_ = {children: ["seekBar"]}, l["default"].registerComponent("ProgressControl", u), n["default"] = u
    }, {"../../component.js": 70, "./mouse-time-display.js": 81, "./seek-bar.js": 84}],
    84: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../slider/slider.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("../../utils/fn.js"), d = i(f), p = t("../../utils/format-time.js"), y = o(p), v = t("../../utils/computed-style.js"), m = o(v);
        t("./load-progress-bar.js"), t("./play-progress-bar.js"), t("./tooltip-progress-bar.js");
        var g = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "timeupdate", o.updateProgress), o.on(n, "ended", o.updateProgress), n.ready(d.bind(o, o.updateProgress)), i.playerOptions && i.playerOptions.controlBar && i.playerOptions.controlBar.progressControl && i.playerOptions.controlBar.progressControl.keepTooltipsInside && (o.keepTooltipsInside = i.playerOptions.controlBar.progressControl.keepTooltipsInside), o.keepTooltipsInside && (o.tooltipProgressBar = o.addChild("TooltipProgressBar")), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-progress-holder"}, {"aria-label": "progress bar"})
            }, e.prototype.updateProgress = function () {
                if (this.updateAriaAttributes(this.el_), this.keepTooltipsInside) {
                    this.updateAriaAttributes(this.tooltipProgressBar.el_), this.tooltipProgressBar.el_.style.width = this.bar.el_.style.width;
                    var t = parseFloat((0, m["default"])(this.player().el(), "width")), e = parseFloat((0, m["default"])(this.tooltipProgressBar.tooltip, "width")), n = this.tooltipProgressBar.el().style;
                    n.maxWidth = Math.floor(t - e / 2) + "px", n.minWidth = Math.ceil(e / 2) + "px", n.right = "-" + e / 2 + "px"
                }
            }, e.prototype.updateAriaAttributes = function (t) {
                var e = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
                t.setAttribute("aria-valuenow", (100 * this.getPercent()).toFixed(2)), t.setAttribute("aria-valuetext", (0, y["default"])(e, this.player_.duration()))
            }, e.prototype.getPercent = function () {
                var t = this.player_.currentTime() / this.player_.duration();
                return t >= 1 ? 1 : t
            }, e.prototype.handleMouseDown = function (e) {
                t.prototype.handleMouseDown.call(this, e), this.player_.scrubbing(!0), this.videoWasPlaying = !this.player_.paused(), this.player_.pause()
            }, e.prototype.handleMouseMove = function (t) {
                var e = this.calculateDistance(t) * this.player_.duration();
                e === this.player_.duration() && (e -= .1), this.player_.currentTime(e)
            }, e.prototype.handleMouseUp = function (e) {
                t.prototype.handleMouseUp.call(this, e), this.player_.scrubbing(!1), this.videoWasPlaying && this.player_.play()
            }, e.prototype.stepForward = function () {
                this.player_.currentTime(this.player_.currentTime() + 5)
            }, e.prototype.stepBack = function () {
                this.player_.currentTime(this.player_.currentTime() - 5)
            }, e
        }(u["default"]);
        g.prototype.options_ = {
            children: ["loadProgressBar", "mouseTimeDisplay", "playProgressBar"],
            barName: "playProgressBar"
        }, g.prototype.playerEvent = "timeupdate", h["default"].registerComponent("SeekBar", g), n["default"] = g
    }, {
        "../../component.js": 70,
        "../../slider/slider.js": 122,
        "../../utils/computed-style.js": 146,
        "../../utils/fn.js": 149,
        "../../utils/format-time.js": 150,
        "./load-progress-bar.js": 80,
        "./play-progress-bar.js": 82,
        "./tooltip-progress-bar.js": 85
    }],
    85: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/fn.js"), h = i(c), f = t("../../utils/format-time.js"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.updateDataAttr(), o.on(n, "timeupdate", o.updateDataAttr), n.ready(h.bind(o, o.updateDataAttr)), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, "div", {
                    className: "vjs-tooltip-progress-bar vjs-slider-bar",
                    innerHTML: '<div class="vjs-time-tooltip"></div>\n        <span class="vjs-control-text"><span>' + this.localize("Progress") + "</span>: 0%</span>"
                });
                return this.tooltip = e.querySelector(".vjs-time-tooltip"), e
            }, e.prototype.updateDataAttr = function () {
                var t = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(), e = (0, d["default"])(t, this.player_.duration());
                this.el_.setAttribute("data-current-time", e), this.tooltip.innerHTML = e
            }, e
        }(u["default"]);
        u["default"].registerComponent("TooltipProgressBar", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/fn.js": 149, "../../utils/format-time.js": 150}],
    86: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./spacer.js"), l = i(a), u = t("../../component.js"), c = i(u), h = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-custom-control-spacer " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, {className: this.buildCSSClass()});
                return e.innerHTML = "&nbsp;", e
            }, e
        }(l["default"]);
        c["default"].registerComponent("CustomControlSpacer", h), n["default"] = h
    }, {"../../component.js": 70, "./spacer.js": 87}],
    87: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../component.js"), l = i(a), u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-spacer " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: this.buildCSSClass()})
            }, e
        }(l["default"]);
        l["default"].registerComponent("Spacer", u), n["default"] = u
    }, {"../../component.js": 70}],
    88: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./text-track-menu-item.js"), l = i(a), u = t("../../component.js"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e), i.track = {
                    player: n,
                    kind: i.kind,
                    label: i.kind + " settings",
                    selectable: !1,
                    "default": !1,
                    mode: "disabled"
                }, i.selectable = !1;
                var s = r(this, t.call(this, n, i));
                return s.addClass("vjs-texttrack-settings"), s.controlText(", opens " + i.kind + " settings dialog"), s
            }

            return s(e, t), e.prototype.handleClick = function () {
                this.player().getChild("textTrackSettings").show(), this.player().getChild("textTrackSettings").el_.focus()
            }, e
        }(l["default"]);
        c["default"].registerComponent("CaptionSettingsMenuItem", h), n["default"] = h
    }, {"../../component.js": 70, "./text-track-menu-item.js": 96}],
    89: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./text-track-button.js"), l = i(a), u = t("../../component.js"), c = i(u), h = t("./caption-settings-menu-item.js"), f = i(h), d = function (t) {
            function e(n, i, s) {
                o(this, e);
                var a = r(this, t.call(this, n, i, s));
                return a.el_.setAttribute("aria-label", "Captions Menu"), a
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-captions-button " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.update = function () {
                var e = 2;
                t.prototype.update.call(this), this.player().tech_ && this.player().tech_.featuresNativeTextTracks && (e = 1), this.items && this.items.length > e ? this.show() : this.hide()
            }, e.prototype.createItems = function () {
                var e = [];
                return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || e.push(new f["default"](this.player_, {kind: this.kind_})), t.prototype.createItems.call(this, e)
            }, e
        }(l["default"]);
        d.prototype.kind_ = "captions", d.prototype.controlText_ = "Captions", c["default"].registerComponent("CaptionsButton", d), n["default"] = d
    }, {"../../component.js": 70, "./caption-settings-menu-item.js": 88, "./text-track-button.js": 95}],
    90: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./text-track-button.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("./text-track-menu-item.js"), d = o(f), p = t("./chapters-track-menu-item.js"), y = o(p), v = t("../../menu/menu.js"), m = o(v), g = t("../../utils/dom.js"), b = i(g), _ = t("../../utils/to-title-case.js"), w = o(_), k = function (t) {
            function e(n, i, o) {
                r(this, e);
                var a = s(this, t.call(this, n, i, o));
                return a.el_.setAttribute("aria-label", "Chapters Menu"), a
            }

            return a(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-chapters-button " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.createItems = function () {
                var t = [], e = this.player_.textTracks();
                if (!e)return t;
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i.kind === this.kind_ && t.push(new d["default"](this.player_, {track: i}))
                }
                return t
            }, e.prototype.createMenu = function () {
                for (var t = this, e = this.player_.textTracks() || [], n = void 0, i = this.items || [], o = e.length - 1; o >= 0; o--) {
                    var r = e[o];
                    if (r.kind === this.kind_) {
                        n = r;
                        break
                    }
                }
                var s = this.menu;
                if (void 0 === s) {
                    s = new m["default"](this.player_);
                    var a = b.createEl("li", {
                        className: "vjs-menu-title",
                        innerHTML: (0, w["default"])(this.kind_),
                        tabIndex: -1
                    });
                    s.children_.unshift(a), b.insertElFirst(a, s.contentEl())
                } else i.forEach(function (t) {
                    return s.removeChild(t)
                }), i = [];
                if (n && (null === n.cues || void 0 === n.cues)) {
                    n.mode = "hidden";
                    var l = this.player_.remoteTextTrackEls().getTrackElementByTrack_(n);
                    l && l.addEventListener("load", function (e) {
                        return t.update()
                    })
                }
                if (n && n.cues && n.cues.length > 0)for (var u = n.cues, c = 0, h = u.length; c < h; c++) {
                    var f = u[c], d = new y["default"](this.player_, {cue: f, track: n});
                    i.push(d), s.addChild(d)
                }
                return i.length > 0 && this.show(), this.items = i, s
            }, e
        }(u["default"]);
        k.prototype.kind_ = "chapters", k.prototype.controlText_ = "Chapters", h["default"].registerComponent("ChaptersButton", k), n["default"] = k
    }, {
        "../../component.js": 70,
        "../../menu/menu.js": 114,
        "../../utils/dom.js": 147,
        "../../utils/to-title-case.js": 157,
        "./chapters-track-menu-item.js": 91,
        "./text-track-button.js": 95,
        "./text-track-menu-item.js": 96
    }],
    91: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../menu/menu-item.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("../../utils/fn.js"), d = i(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = i.track, a = i.cue, l = n.currentTime();
                i.label = a.text, i.selected = a.startTime <= l && l < a.endTime;
                var u = s(this, t.call(this, n, i));
                return u.track = o, u.cue = a, o.addEventListener("cuechange", d.bind(u, u.update)), u
            }

            return a(e, t), e.prototype.handleClick = function () {
                t.prototype.handleClick.call(this), this.player_.currentTime(this.cue.startTime), this.update(this.cue.startTime)
            }, e.prototype.update = function () {
                var t = this.cue, e = this.player_.currentTime();
                this.selected(t.startTime <= e && e < t.endTime)
            }, e
        }(u["default"]);
        h["default"].registerComponent("ChaptersTrackMenuItem", p), n["default"] = p
    }, {"../../component.js": 70, "../../menu/menu-item.js": 113, "../../utils/fn.js": 149}],
    92: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./text-track-button.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("../../utils/fn.js"), d = i(f), p = function (t) {
            function e(n, i, o) {
                r(this, e);
                var a = s(this, t.call(this, n, i, o));
                a.el_.setAttribute("aria-label", "Descriptions Menu");
                var l = n.textTracks();
                return l && !function () {
                    var t = d.bind(a, a.handleTracksChange);
                    l.addEventListener("change", t), a.on("dispose", function () {
                        l.removeEventListener("change", t)
                    })
                }(), a
            }

            return a(e, t), e.prototype.handleTracksChange = function (t) {
                for (var e = this.player().textTracks(), n = !1, i = 0, o = e.length; i < o; i++) {
                    var r = e[i];
                    if (r.kind !== this.kind_ && "showing" === r.mode) {
                        n = !0;
                        break
                    }
                }
                n ? this.disable() : this.enable()
            }, e.prototype.buildCSSClass = function () {
                return "vjs-descriptions-button " + t.prototype.buildCSSClass.call(this)
            }, e
        }(u["default"]);
        p.prototype.kind_ = "descriptions", p.prototype.controlText_ = "Descriptions", h["default"].registerComponent("DescriptionsButton", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/fn.js": 149, "./text-track-button.js": 95}],
    93: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./text-track-menu-item.js"), l = i(a), u = t("../../component.js"), c = i(u), h = function (t) {
            function e(n, i) {
                o(this, e), i.track = {
                    player: n,
                    kind: i.kind,
                    label: i.kind + " off",
                    "default": !1,
                    mode: "disabled"
                }, i.selectable = !0;
                var s = r(this, t.call(this, n, i));
                return s.selected(!0), s
            }

            return s(e, t), e.prototype.handleTracksChange = function (t) {
                for (var e = this.player().textTracks(), n = !0, i = 0, o = e.length; i < o; i++) {
                    var r = e[i];
                    if (r.kind === this.track.kind && "showing" === r.mode) {
                        n = !1;
                        break
                    }
                }
                this.selected(n)
            }, e
        }(l["default"]);
        c["default"].registerComponent("OffTextTrackMenuItem", h), n["default"] = h
    }, {"../../component.js": 70, "./text-track-menu-item.js": 96}],
    94: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./text-track-button.js"), l = i(a), u = t("../../component.js"), c = i(u), h = function (t) {
            function e(n, i, s) {
                o(this, e);
                var a = r(this, t.call(this, n, i, s));
                return a.el_.setAttribute("aria-label", "Subtitles Menu"), a
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-subtitles-button " + t.prototype.buildCSSClass.call(this)
            }, e
        }(l["default"]);
        h.prototype.kind_ = "subtitles", h.prototype.controlText_ = "Subtitles", c["default"].registerComponent("SubtitlesButton", h), n["default"] = h
    }, {"../../component.js": 70, "./text-track-button.js": 95}],
    95: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../track-button.js"), l = i(a), u = t("../../component.js"), c = i(u), h = t("./text-track-menu-item.js"), f = i(h), d = t("./off-text-track-menu-item.js"), p = i(d), y = function (t) {
            function e(n) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                return o(this, e), i.tracks = n.textTracks(), r(this, t.call(this, n, i))
            }

            return s(e, t), e.prototype.createItems = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                t.push(new p["default"](this.player_, {kind: this.kind_}));
                var e = this.player_.textTracks();
                if (!e)return t;
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i.kind === this.kind_ && t.push(new f["default"](this.player_, {track: i, selectable: !0}))
                }
                return t
            }, e
        }(l["default"]);
        c["default"].registerComponent("TextTrackButton", y), n["default"] = y
    }, {
        "../../component.js": 70,
        "../track-button.js": 101,
        "./off-text-track-menu-item.js": 93,
        "./text-track-menu-item.js": 96
    }],
    96: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, u = t("../../menu/menu-item.js"), c = o(u), h = t("../../component.js"), f = o(h), d = t("../../utils/fn.js"), p = i(d), y = t("global/window"), v = o(y), m = t("global/document"), g = o(m), b = function (t) {
            function e(n, i) {
                r(this, e);
                var o = i.track, a = n.textTracks();
                i.label = o.label || o.language || "Unknown", i.selected = o["default"] || "showing" === o.mode;
                var u = s(this, t.call(this, n, i));
                return u.track = o, a && !function () {
                    var t = p.bind(u, u.handleTracksChange);
                    a.addEventListener("change", t), u.on("dispose", function () {
                        a.removeEventListener("change", t)
                    })
                }(), a && void 0 === a.onchange && !function () {
                    var t = void 0;
                    u.on(["tap", "click"], function () {
                        if ("object" !== l(v["default"].Event))try {
                            t = new v["default"].Event("change")
                        } catch (e) {
                        }
                        t || (t = g["default"].createEvent("Event"), t.initEvent("change", !0, !0)), a.dispatchEvent(t)
                    })
                }(), u
            }

            return a(e, t), e.prototype.handleClick = function (e) {
                var n = this.track.kind, i = this.player_.textTracks();
                if (t.prototype.handleClick.call(this, e), i)for (var o = 0; o < i.length; o++) {
                    var r = i[o];
                    r.kind === n && (r === this.track ? r.mode = "showing" : r.mode = "disabled")
                }
            }, e.prototype.handleTracksChange = function (t) {
                this.selected("showing" === this.track.mode)
            }, e
        }(c["default"]);
        f["default"].registerComponent("TextTrackMenuItem", b), n["default"] = b
    }, {
        "../../component.js": 70,
        "../../menu/menu-item.js": 113,
        "../../utils/fn.js": 149,
        "global/document": 9,
        "global/window": 10
    }],
    97: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/dom.js"), h = i(c), f = t("../../utils/format-time.js"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "timeupdate", o.updateContent), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, "div", {className: "vjs-current-time vjs-time-control vjs-control"});
                return this.contentEl_ = h.createEl("div", {
                    className: "vjs-current-time-display",
                    innerHTML: '<span class="vjs-control-text">Current Time </span>0:00'
                }, {"aria-live": "off"}), e.appendChild(this.contentEl_), e
            }, e.prototype.updateContent = function () {
                var t = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(), e = this.localize("Current Time"), n = (0, d["default"])(t, this.player_.duration());
                n !== this.formattedTime_ && (this.formattedTime_ = n, this.contentEl_.innerHTML = '<span class="vjs-control-text">' + e + "</span> " + n)
            }, e
        }(u["default"]);
        u["default"].registerComponent("CurrentTimeDisplay", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/dom.js": 147, "../../utils/format-time.js": 150}],
    98: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/dom.js"), h = i(c), f = t("../../utils/format-time.js"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "durationchange", o.updateContent), o.on(n, "timeupdate", o.updateContent), o.on(n, "loadedmetadata", o.updateContent), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, "div", {className: "vjs-duration vjs-time-control vjs-control"});
                return this.contentEl_ = h.createEl("div", {
                    className: "vjs-duration-display",
                    innerHTML: '<span class="vjs-control-text">' + this.localize("Duration Time") + "</span> 0:00"
                }, {"aria-live": "off"}), e.appendChild(this.contentEl_), e
            }, e.prototype.updateContent = function () {
                var t = this.player_.duration();
                if (t && this.duration_ !== t) {
                    this.duration_ = t;
                    var e = this.localize("Duration Time"), n = (0, d["default"])(t);
                    this.contentEl_.innerHTML = '<span class="vjs-control-text">' + e + "</span> " + n
                }
            }, e
        }(u["default"]);
        u["default"].registerComponent("DurationDisplay", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/dom.js": 147, "../../utils/format-time.js": 150}],
    99: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../component.js"), u = o(l), c = t("../../utils/dom.js"), h = i(c), f = t("../../utils/format-time.js"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "timeupdate", o.updateContent), o.on(n, "durationchange", o.updateContent), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var e = t.prototype.createEl.call(this, "div", {className: "vjs-remaining-time vjs-time-control vjs-control"});
                return this.contentEl_ = h.createEl("div", {
                    className: "vjs-remaining-time-display",
                    innerHTML: '<span class="vjs-control-text">' + this.localize("Remaining Time") + "</span> -0:00"
                }, {"aria-live": "off"}), e.appendChild(this.contentEl_), e
            }, e.prototype.updateContent = function () {
                if (this.player_.duration()) {
                    var t = this.localize("Remaining Time"), e = (0, d["default"])(this.player_.remainingTime());
                    e !== this.formattedTime_ && (this.formattedTime_ = e, this.contentEl_.innerHTML = '<span class="vjs-control-text">' + t + "</span> -" + e)
                }
            }, e
        }(u["default"]);
        u["default"].registerComponent("RemainingTimeDisplay", p), n["default"] = p
    }, {"../../component.js": 70, "../../utils/dom.js": 147, "../../utils/format-time.js": 150}],
    100: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../component.js"), l = i(a), u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: "vjs-time-control vjs-time-divider",
                    innerHTML: "<div><span>/</span></div>"
                })
            }, e
        }(l["default"]);
        l["default"].registerComponent("TimeDivider", u), n["default"] = u
    }, {"../../component.js": 70}],
    101: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../menu/menu-button.js"), u = o(l), c = t("../component.js"), h = o(c), f = t("../utils/fn.js"), d = i(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = i.tracks, a = s(this, t.call(this, n, i));
                if (a.items.length <= 1 && a.hide(), !o)return s(a);
                var l = d.bind(a, a.update);
                return o.addEventListener("removetrack", l), o.addEventListener("addtrack", l), a.player_.on("dispose", function () {
                    o.removeEventListener("removetrack", l), o.removeEventListener("addtrack", l)
                }), a
            }

            return a(e, t), e
        }(u["default"]);
        h["default"].registerComponent("TrackButton", p), n["default"] = p
    }, {"../component.js": 70, "../menu/menu-button.js": 112, "../utils/fn.js": 149}],
    102: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../../slider/slider.js"), u = o(l), c = t("../../component.js"), h = o(c), f = t("../../utils/fn.js"), d = i(f);
        t("./volume-level.js");
        var p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.on(n, "volumechange", o.updateARIAAttributes), n.ready(d.bind(o, o.updateARIAAttributes)), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-volume-bar vjs-slider-bar"}, {"aria-label": "volume level"})
            }, e.prototype.handleMouseMove = function (t) {
                this.checkMuted(), this.player_.volume(this.calculateDistance(t))
            }, e.prototype.checkMuted = function () {
                this.player_.muted() && this.player_.muted(!1)
            }, e.prototype.getPercent = function () {
                return this.player_.muted() ? 0 : this.player_.volume()
            }, e.prototype.stepForward = function () {
                this.checkMuted(), this.player_.volume(this.player_.volume() + .1)
            }, e.prototype.stepBack = function () {
                this.checkMuted(), this.player_.volume(this.player_.volume() - .1)
            }, e.prototype.updateARIAAttributes = function () {
                var t = (100 * this.player_.volume()).toFixed(2);
                this.el_.setAttribute("aria-valuenow", t), this.el_.setAttribute("aria-valuetext", t + "%")
            }, e
        }(u["default"]);
        p.prototype.options_ = {
            children: ["volumeLevel"],
            barName: "volumeLevel"
        }, p.prototype.playerEvent = "volumechange", h["default"].registerComponent("VolumeBar", p), n["default"] = p
    }, {"../../component.js": 70, "../../slider/slider.js": 122, "../../utils/fn.js": 149, "./volume-level.js": 104}],
    103: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../component.js"), l = i(a);
        t("./volume-bar.js");
        var u = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return n.tech_ && n.tech_.featuresVolumeControl === !1 && s.addClass("vjs-hidden"), s.on(n, "loadstart", function () {
                    n.tech_.featuresVolumeControl === !1 ? this.addClass("vjs-hidden") : this.removeClass("vjs-hidden")
                }), s
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-volume-control vjs-control"})
            }, e
        }(l["default"]);
        u.prototype.options_ = {children: ["volumeBar"]}, l["default"].registerComponent("VolumeControl", u), n["default"] = u
    }, {"../../component.js": 70, "./volume-bar.js": 102}],
    104: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../../component.js"), l = i(a), u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: "vjs-volume-level",
                    innerHTML: '<span class="vjs-control-text"></span>'
                })
            }, e
        }(l["default"]);
        l["default"].registerComponent("VolumeLevel", u), n["default"] = u
    }, {"../../component.js": 70}],
    105: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../utils/fn.js"), u = o(l), c = t("../component.js"), h = i(c), f = t("../popup/popup.js"), d = i(f), p = t("../popup/popup-button.js"), y = i(p), v = t("./mute-toggle.js"), m = i(v), g = t("./volume-control/volume-bar.js"), b = i(g), _ = function (t) {
            function e(n) {
                function i() {
                    n.tech_ && n.tech_.featuresVolumeControl === !1 ? this.addClass("vjs-hidden") : this.removeClass("vjs-hidden")
                }

                var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                r(this, e), void 0 === o.inline && (o.inline = !0), void 0 === o.vertical && (o.inline ? o.vertical = !1 : o.vertical = !0), o.volumeBar = o.volumeBar || {}, o.volumeBar.vertical = !!o.vertical;
                var a = s(this, t.call(this, n, o));
                return a.on(n, "volumechange", a.volumeUpdate), a.on(n, "loadstart", a.volumeUpdate), i.call(a), a.on(n, "loadstart", i), a.on(a.volumeBar, ["slideractive", "focus"], function () {
                    this.addClass("vjs-slider-active")
                }), a.on(a.volumeBar, ["sliderinactive", "blur"], function () {
                    this.removeClass("vjs-slider-active")
                }), a.on(a.volumeBar, ["focus"], function () {
                    this.addClass("vjs-lock-showing")
                }), a.on(a.volumeBar, ["blur"], function () {
                    this.removeClass("vjs-lock-showing")
                }), a
            }

            return a(e, t), e.prototype.buildCSSClass = function () {
                var e = "";
                return e = this.options_.vertical ? "vjs-volume-menu-button-vertical" : "vjs-volume-menu-button-horizontal", "vjs-volume-menu-button " + t.prototype.buildCSSClass.call(this) + " " + e
            }, e.prototype.createPopup = function () {
                var t = new d["default"](this.player_, {contentElType: "div"}), e = new b["default"](this.player_, this.options_.volumeBar);
                return t.addChild(e), this.menuContent = t, this.volumeBar = e, this.attachVolumeBarEvents(), t
            }, e.prototype.handleClick = function () {
                m["default"].prototype.handleClick.call(this), t.prototype.handleClick.call(this)
            }, e.prototype.attachVolumeBarEvents = function () {
                this.menuContent.on(["mousedown", "touchdown"], u.bind(this, this.handleMouseDown))
            }, e.prototype.handleMouseDown = function (t) {
                this.on(["mousemove", "touchmove"], u.bind(this.volumeBar, this.volumeBar.handleMouseMove)), this.on(this.el_.ownerDocument, ["mouseup", "touchend"], this.handleMouseUp)
            }, e.prototype.handleMouseUp = function (t) {
                this.off(["mousemove", "touchmove"], u.bind(this.volumeBar, this.volumeBar.handleMouseMove))
            }, e
        }(y["default"]);
        _.prototype.volumeUpdate = m["default"].prototype.update, _.prototype.controlText_ = "Mute", h["default"].registerComponent("VolumeMenuButton", _), n["default"] = _
    }, {
        "../component.js": 70,
        "../popup/popup-button.js": 118,
        "../popup/popup.js": 119,
        "../utils/fn.js": 149,
        "./mute-toggle.js": 76,
        "./volume-control/volume-bar.js": 102
    }],
    106: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./component"), l = i(a), u = t("./modal-dialog"), c = i(u), h = t("./utils/merge-options"), f = i(h), d = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.on(n, "error", s.open), s
            }

            return s(e, t), e.prototype.buildCSSClass = function () {
                return "vjs-error-display " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.content = function () {
                var t = this.player().error();
                return t ? this.localize(t.message) : ""
            }, e
        }(c["default"]);
        d.prototype.options_ = (0, f["default"])(c["default"].prototype.options_, {
            fillAlways: !0,
            temporary: !1,
            uncloseable: !0
        }), l["default"].registerComponent("ErrorDisplay", d), n["default"] = d
    }, {"./component": 70, "./modal-dialog": 115, "./utils/merge-options": 153}],
    107: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        n.__esModule = !0;
        var o = t("./utils/events.js"), r = i(o), s = function () {
        };
        s.prototype.allowedEvents_ = {}, s.prototype.on = function (t, e) {
            var n = this.addEventListener;
            this.addEventListener = function () {
            }, r.on(this, t, e), this.addEventListener = n
        }, s.prototype.addEventListener = s.prototype.on, s.prototype.off = function (t, e) {
            r.off(this, t, e)
        }, s.prototype.removeEventListener = s.prototype.off, s.prototype.one = function (t, e) {
            var n = this.addEventListener;
            this.addEventListener = function () {
            }, r.one(this, t, e), this.addEventListener = n
        }, s.prototype.trigger = function (t) {
            var e = t.type || t;
            "string" == typeof t && (t = {type: e}), t = r.fixEvent(t), this.allowedEvents_[e] && this["on" + e] && this["on" + e](t), r.trigger(this, t)
        }, s.prototype.dispatchEvent = s.prototype.trigger, n["default"] = s
    }, {"./utils/events.js": 148}],
    108: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0;
        var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, r = t("./utils/log"), s = i(r), a = function (t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + ("undefined" == typeof e ? "undefined" : o(e)));
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (t.super_ = e)
        }, l = function (t) {
            var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = function () {
                t.apply(this, arguments)
            }, i = {};
            "object" === ("undefined" == typeof e ? "undefined" : o(e)) ? ("function" == typeof e.init && (s["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."), e.constructor = e.init), e.constructor !== Object.prototype.constructor && (n = e.constructor), i = e) : "function" == typeof e && (n = e), a(n, t);
            for (var r in i)i.hasOwnProperty(r) && (n.prototype[r] = i[r]);
            return n
        };
        n["default"] = l
    }, {"./utils/log": 152}],
    109: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0;
        for (var o = t("global/document"), r = i(o), s = {}, a = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]], l = a[0], u = void 0, c = 0; c < a.length; c++)if (a[c][1] in r["default"]) {
            u = a[c];
            break
        }
        if (u)for (var h = 0; h < u.length; h++)s[l[h]] = u[h];
        n["default"] = s
    }, {"global/document": 9}],
    110: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("./component"), l = i(a), u = function (t) {
            function e() {
                return o(this, e), r(this, t.apply(this, arguments))
            }

            return s(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-loading-spinner", dir: "ltr"})
            }, e
        }(l["default"]);
        l["default"].registerComponent("LoadingSpinner", u), n["default"] = u
    }, {"./component": 70}],
    111: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            return t instanceof o ? t : ("number" == typeof t ? this.code = t : "string" == typeof t ? this.message = t : "object" === ("undefined" == typeof t ? "undefined" : r(t)) && ("number" == typeof t.code && (this.code = t.code), (0, a["default"])(this, t)), void(this.message || (this.message = o.defaultMessages[this.code] || "")))
        }

        n.__esModule = !0;
        var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, s = t("object.assign"), a = i(s);
        o.prototype.code = 0, o.prototype.message = "", o.prototype.status = null, o.errorTypes = ["MEDIA_ERR_CUSTOM", "MEDIA_ERR_ABORTED", "MEDIA_ERR_NETWORK", "MEDIA_ERR_DECODE", "MEDIA_ERR_SRC_NOT_SUPPORTED", "MEDIA_ERR_ENCRYPTED"], o.defaultMessages = {
            1: "You aborted the media playback",
            2: "A network error caused the media download to fail part-way.",
            3: "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",
            4: "The media could not be loaded, either because the server or network failed or because the format is not supported.",
            5: "The media is encrypted and we do not have the keys to decrypt it."
        };
        for (var l = 0; l < o.errorTypes.length; l++)o[o.errorTypes[l]] = l, o.prototype[o.errorTypes[l]] = l;
        n["default"] = o
    }, {"object.assign": 56}],
    112: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../clickable-component.js"), u = o(l), c = t("../component.js"), h = o(c), f = t("./menu.js"), d = o(f), p = t("../utils/dom.js"), y = i(p), v = t("../utils/fn.js"), m = i(v), g = t("../utils/to-title-case.js"), b = o(g), _ = function (t) {
            function e(n) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.update(), o.enabled_ = !0, o.el_.setAttribute("aria-haspopup", "true"), o.el_.setAttribute("role", "menuitem"), o.on("keydown", o.handleSubmenuKeyPress), o
            }

            return a(e, t), e.prototype.update = function () {
                var t = this.createMenu();
                this.menu && this.removeChild(this.menu), this.menu = t, this.addChild(t), this.buttonPressed_ = !1, this.el_.setAttribute("aria-expanded", "false"), this.items && 0 === this.items.length ? this.hide() : this.items && this.items.length > 1 && this.show()
            }, e.prototype.createMenu = function () {
                var t = new d["default"](this.player_);
                if (this.options_.title) {
                    var e = y.createEl("li", {
                        className: "vjs-menu-title",
                        innerHTML: (0, b["default"])(this.options_.title),
                        tabIndex: -1
                    });
                    t.children_.unshift(e), y.insertElFirst(e, t.contentEl())
                }
                if (this.items = this.createItems(), this.items)for (var n = 0; n < this.items.length; n++)t.addItem(this.items[n]);
                return t
            }, e.prototype.createItems = function () {
            }, e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: this.buildCSSClass()})
            }, e.prototype.buildCSSClass = function () {
                var e = "vjs-menu-button";
                return e += this.options_.inline === !0 ? "-inline" : "-popup", "vjs-menu-button " + e + " " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleClick = function () {
                this.one(this.menu.contentEl(), "mouseleave", m.bind(this, function (t) {
                    this.unpressButton(), this.el_.blur()
                })), this.buttonPressed_ ? this.unpressButton() : this.pressButton()
            }, e.prototype.handleKeyPress = function (e) {
                27 === e.which || 9 === e.which ? (this.buttonPressed_ && this.unpressButton(), 9 !== e.which && e.preventDefault()) : 38 === e.which || 40 === e.which ? this.buttonPressed_ || (this.pressButton(), e.preventDefault()) : t.prototype.handleKeyPress.call(this, e)
            }, e.prototype.handleSubmenuKeyPress = function (t) {
                27 !== t.which && 9 !== t.which || (this.buttonPressed_ && this.unpressButton(), 9 !== t.which && t.preventDefault())
            }, e.prototype.pressButton = function () {
                this.enabled_ && (this.buttonPressed_ = !0, this.menu.lockShowing(), this.el_.setAttribute("aria-expanded", "true"), this.menu.focus())
            }, e.prototype.unpressButton = function () {
                this.enabled_ && (this.buttonPressed_ = !1, this.menu.unlockShowing(), this.el_.setAttribute("aria-expanded", "false"), this.el_.focus())
            }, e.prototype.disable = function () {
                return this.buttonPressed_ = !1, this.menu.unlockShowing(), this.el_.setAttribute("aria-expanded", "false"), this.enabled_ = !1, t.prototype.disable.call(this)
            }, e.prototype.enable = function () {
                return this.enabled_ = !0, t.prototype.enable.call(this)
            }, e
        }(u["default"]);
        h["default"].registerComponent("MenuButton", _), n["default"] = _
    }, {
        "../clickable-component.js": 68,
        "../component.js": 70,
        "../utils/dom.js": 147,
        "../utils/fn.js": 149,
        "../utils/to-title-case.js": 157,
        "./menu.js": 114
    }],
    113: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../clickable-component.js"), l = i(a), u = t("../component.js"), c = i(u), h = t("object.assign"), f = i(h), d = function (t) {
            function e(n, i) {
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.selectable = i.selectable, s.selected(i.selected), s.selectable ? s.el_.setAttribute("role", "menuitemcheckbox") : s.el_.setAttribute("role", "menuitem"), s
            }

            return s(e, t), e.prototype.createEl = function (e, n, i) {
                return t.prototype.createEl.call(this, "li", (0, f["default"])({
                    className: "vjs-menu-item",
                    innerHTML: this.localize(this.options_.label),
                    tabIndex: -1
                }, n), i)
            }, e.prototype.handleClick = function () {
                this.selected(!0)
            }, e.prototype.selected = function (t) {
                this.selectable && (t ? (this.addClass("vjs-selected"), this.el_.setAttribute("aria-checked", "true"), this.controlText(", selected")) : (this.removeClass("vjs-selected"), this.el_.setAttribute("aria-checked", "false"), this.controlText(" ")))
            }, e
        }(l["default"]);
        c["default"].registerComponent("MenuItem", d), n["default"] = d
    }, {"../clickable-component.js": 68, "../component.js": 70, "object.assign": 56}],
    114: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../component.js"), u = o(l), c = t("../utils/dom.js"), h = i(c), f = t("../utils/fn.js"), d = i(f), p = t("../utils/events.js"), y = i(p), v = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.focusedChild_ = -1, o.on("keydown", o.handleKeyPress), o
            }

            return a(e, t), e.prototype.addItem = function (t) {
                this.addChild(t), t.on("click", d.bind(this, function () {
                    this.unlockShowing()
                }))
            }, e.prototype.createEl = function () {
                var e = this.options_.contentElType || "ul";
                this.contentEl_ = h.createEl(e, {className: "vjs-menu-content"}), this.contentEl_.setAttribute("role", "menu");
                var n = t.prototype.createEl.call(this, "div", {append: this.contentEl_, className: "vjs-menu"});
                return n.setAttribute("role", "presentation"), n.appendChild(this.contentEl_), y.on(n, "click", function (t) {
                    t.preventDefault(), t.stopImmediatePropagation()
                }), n
            }, e.prototype.handleKeyPress = function (t) {
                37 === t.which || 40 === t.which ? (t.preventDefault(), this.stepForward()) : 38 !== t.which && 39 !== t.which || (t.preventDefault(), this.stepBack())
            }, e.prototype.stepForward = function () {
                var t = 0;
                void 0 !== this.focusedChild_ && (t = this.focusedChild_ + 1), this.focus(t)
            }, e.prototype.stepBack = function () {
                var t = 0;
                void 0 !== this.focusedChild_ && (t = this.focusedChild_ - 1), this.focus(t)
            }, e.prototype.focus = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, e = this.children().slice(), n = e.length && e[0].className && /vjs-menu-title/.test(e[0].className);
                n && e.shift(), e.length > 0 && (t < 0 ? t = 0 : t >= e.length && (t = e.length - 1), this.focusedChild_ = t, e[t].el_.focus())
            }, e
        }(u["default"]);
        u["default"].registerComponent("Menu", v), n["default"] = v
    }, {"../component.js": 70, "../utils/dom.js": 147, "../utils/events.js": 148, "../utils/fn.js": 149}],
    115: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./utils/dom"), u = o(l), c = t("./utils/fn"), h = o(c), f = t("./component"), d = i(f), p = "vjs-modal-dialog", y = 27, v = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.opened_ = o.hasBeenOpened_ = o.hasBeenFilled_ = !1, o.closeable(!o.options_.uncloseable), o.content(o.options_.content), o.contentEl_ = u.createEl("div", {className: p + "-content"}, {role: "document"}), o.descEl_ = u.createEl("p", {
                    className: p + "-description vjs-offscreen",
                    id: o.el().getAttribute("aria-describedby")
                }), u.textContent(o.descEl_, o.description()), o.el_.appendChild(o.descEl_), o.el_.appendChild(o.contentEl_), o
            }

            return a(e, t), e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {
                    className: this.buildCSSClass(),
                    tabIndex: -1
                }, {
                    "aria-describedby": this.id() + "_description",
                    "aria-hidden": "true",
                    "aria-label": this.label(),
                    role: "dialog"
                })
            }, e.prototype.buildCSSClass = function () {
                return p + " vjs-hidden " + t.prototype.buildCSSClass.call(this)
            }, e.prototype.handleKeyPress = function (t) {
                t.which === y && this.closeable() && this.close()
            }, e.prototype.label = function () {
                return this.options_.label || this.localize("Modal Window")
            }, e.prototype.description = function () {
                var t = this.options_.description || this.localize("This is a modal window.");
                return this.closeable() && (t += " " + this.localize("This modal can be closed by pressing the Escape key or activating the close button.")), t
            }, e.prototype.open = function () {
                if (!this.opened_) {
                    var t = this.player();
                    this.trigger("beforemodalopen"), this.opened_ = !0, (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) && this.fill(), this.wasPlaying_ = !t.paused(), this.wasPlaying_ && t.pause(), this.closeable() && this.on(this.el_.ownerDocument, "keydown", h.bind(this, this.handleKeyPress)), t.controls(!1), this.show(), this.el().setAttribute("aria-hidden", "false"), this.trigger("modalopen"), this.hasBeenOpened_ = !0
                }
                return this
            }, e.prototype.opened = function (t) {
                return "boolean" == typeof t && this[t ? "open" : "close"](), this.opened_
            }, e.prototype.close = function () {
                if (this.opened_) {
                    var t = this.player();
                    this.trigger("beforemodalclose"), this.opened_ = !1, this.wasPlaying_ && t.play(), this.closeable() && this.off(this.el_.ownerDocument, "keydown", h.bind(this, this.handleKeyPress)), t.controls(!0), this.hide(), this.el().setAttribute("aria-hidden", "true"), this.trigger("modalclose"), this.options_.temporary && this.dispose()
                }
                return this
            }, e.prototype.closeable = function n(t) {
                if ("boolean" == typeof t) {
                    var n = this.closeable_ = !!t, e = this.getChild("closeButton");
                    if (n && !e) {
                        var i = this.contentEl_;
                        this.contentEl_ = this.el_, e = this.addChild("closeButton", {controlText: "Close Modal Dialog"}), this.contentEl_ = i, this.on(e, "close", this.close)
                    }
                    !n && e && (this.off(e, "close", this.close), this.removeChild(e), e.dispose())
                }
                return this.closeable_
            }, e.prototype.fill = function () {
                return this.fillWith(this.content())
            }, e.prototype.fillWith = function (t) {
                var e = this.contentEl(), n = e.parentNode, i = e.nextSibling;
                return this.trigger("beforemodalfill"), this.hasBeenFilled_ = !0, n.removeChild(e), this.empty(), u.insertContent(e, t), this.trigger("modalfill"), i ? n.insertBefore(e, i) : n.appendChild(e), this
            }, e.prototype.empty = function () {
                return this.trigger("beforemodalempty"), u.emptyEl(this.contentEl()), this.trigger("modalempty"), this
            }, e.prototype.content = function (t) {
                return "undefined" != typeof t && (this.content_ = t), this.content_
            }, e
        }(d["default"]);
        v.prototype.options_ = {temporary: !0}, d["default"].registerComponent("ModalDialog", v), n["default"] = v
    }, {"./component": 70, "./utils/dom": 147, "./utils/fn": 149}],
    116: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./component.js"), u = o(l), c = t("global/document"), h = o(c), f = t("global/window"), d = o(f), p = t("./utils/events.js"), y = i(p), v = t("./utils/dom.js"), m = i(v), g = t("./utils/fn.js"), b = i(g), _ = t("./utils/guid.js"), w = i(_), k = t("./utils/browser.js"), C = i(k), j = t("./utils/log.js"), T = o(j), S = t("./utils/to-title-case.js"), x = o(S), O = t("./utils/time-ranges.js"), E = t("./utils/buffer.js"), P = t("./utils/stylesheet.js"), M = i(P), A = t("./fullscreen-api.js"), L = o(A), D = t("./media-error.js"), F = o(D), R = t("safe-json-parse/tuple"), I = o(R), N = t("object.assign"), $ = o(N), B = t("./utils/merge-options.js"), W = o(B), H = t("./tracks/text-track-list-converter.js"), V = o(H), Y = t("./modal-dialog"), z = o(Y), U = t("./tech/tech.js"), G = o(U), q = t("./tracks/audio-track-list.js"), X = o(q), K = t("./tracks/video-track-list.js"), J = o(K);
        t("./tech/loader.js"), t("./tech/flash.js"), t("./poster-image.js"), t("./tracks/text-track-display.js"), t("./loading-spinner.js"), t("./big-play-button.js"), t("./close-button.js"), t("./control-bar/control-bar.js"), t("./error-display.js"), t("./tracks/text-track-settings.js"), t("./tech/html5.js");
        var Z = ["progress", "abort", "suspend", "emptied", "stalled", "loadedmetadata", "loadeddata", "timeupdate", "ratechange", "volumechange", "texttrackchange"], Q = function (t) {
            function e(n, i, o) {
                if (r(this, e), n.id = n.id || "vjs_video_" + w.newGUID(), i = (0, $["default"])(e.getTagSettings(n), i), i.initChildren = !1, i.createEl = !1, i.reportTouchActivity = !1, !i.language)if ("function" == typeof n.closest) {
                    var a = n.closest("[lang]");
                    a && (i.language = a.getAttribute("lang"))
                } else for (var l = n; l && 1 === l.nodeType;) {
                    if (m.getElAttributes(l).hasOwnProperty("lang")) {
                        i.language = l.getAttribute("lang");
                        break
                    }
                    l = l.parentNode
                }
                var u = s(this, t.call(this, null, i, o));
                if (!u.options_ || !u.options_.techOrder || !u.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");
                u.tag = n, u.tagAttributes = n && m.getElAttributes(n), u.language(u.options_.language), i.languages ? !function () {
                        var t = {};
                        Object.getOwnPropertyNames(i.languages).forEach(function (e) {
                            t[e.toLowerCase()] = i.languages[e]
                        }), u.languages_ = t
                    }() : u.languages_ = e.prototype.options_.languages, u.cache_ = {}, u.poster_ = i.poster || "", u.controls_ = !!i.controls, n.controls = !1, u.scrubbing_ = !1, u.el_ = u.createEl();
                var c = (0, W["default"])(u.options_);
                return i.plugins && !function () {
                    var t = i.plugins;
                    Object.getOwnPropertyNames(t).forEach(function (e) {
                        "function" == typeof this[e] ? this[e](t[e]) : T["default"].error("Unable to find plugin:", e)
                    }, u)
                }(), u.options_.playerOptions = c, u.initChildren(), u.isAudio("audio" === n.nodeName.toLowerCase()), u.controls() ? u.addClass("vjs-controls-enabled") : u.addClass("vjs-controls-disabled"), u.el_.setAttribute("role", "region"), u.isAudio() ? u.el_.setAttribute("aria-label", "audio player") : u.el_.setAttribute("aria-label", "video player"), u.isAudio() && u.addClass("vjs-audio"), u.flexNotSupported_() && u.addClass("vjs-no-flex"), C.IS_IOS || u.addClass("vjs-workinghover"), e.players[u.id_] = u, u.userActive(!0), u.reportUserActivity(), u.listenForUserActivity_(), u.on("fullscreenchange", u.handleFullscreenChange_), u.on("stageclick", u.handleStageClick_), u
            }

            return a(e, t), e.prototype.dispose = function () {
                this.trigger("dispose"), this.off("dispose"), this.styleEl_ && this.styleEl_.parentNode && this.styleEl_.parentNode.removeChild(this.styleEl_), e.players[this.id_] = null, this.tag && this.tag.player && (this.tag.player = null), this.el_ && this.el_.player && (this.el_.player = null), this.tech_ && this.tech_.dispose(), t.prototype.dispose.call(this)
            }, e.prototype.createEl = function () {
                var e = this.el_ = t.prototype.createEl.call(this, "div"), n = this.tag;
                n.removeAttribute("width"), n.removeAttribute("height");
                var i = m.getElAttributes(n);
                if (Object.getOwnPropertyNames(i).forEach(function (t) {
                        "class" === t ? e.className = i[t] : e.setAttribute(t, i[t])
                    }), n.playerId = n.id, n.id += "_html5_api", n.className = "vjs-tech", n.player = e.player = this, this.addClass("vjs-paused"), d["default"].VIDEOJS_NO_DYNAMIC_STYLE !== !0) {
                    this.styleEl_ = M.createStyleElement("vjs-styles-dimensions");
                    var o = m.$(".vjs-styles-defaults"), r = m.$("head");
                    r.insertBefore(this.styleEl_, o ? o.nextSibling : r.firstChild)
                }
                this.width(this.options_.width), this.height(this.options_.height), this.fluid(this.options_.fluid), this.aspectRatio(this.options_.aspectRatio);
                for (var s = n.getElementsByTagName("a"), a = 0; a < s.length; a++) {
                    var l = s.item(a);
                    m.addElClass(l, "vjs-hidden"), l.setAttribute("hidden", "hidden")
                }
                return n.initNetworkState_ = n.networkState, n.parentNode && n.parentNode.insertBefore(e, n), m.insertElFirst(n, e), this.children_.unshift(n), this.el_ = e, e
            }, e.prototype.width = function (t) {
                return this.dimension("width", t)
            }, e.prototype.height = function (t) {
                return this.dimension("height", t)
            }, e.prototype.dimension = function (t, e) {
                var n = t + "_";
                if (void 0 === e)return this[n] || 0;
                if ("" === e) this[n] = void 0; else {
                    var i = parseFloat(e);
                    if (isNaN(i))return T["default"].error('Improper value "' + e + '" supplied for for ' + t), this;
                    this[n] = i
                }
                return this.updateStyleEl_(), this
            }, e.prototype.fluid = function (t) {
                return void 0 === t ? !!this.fluid_ : (this.fluid_ = !!t, t ? this.addClass("vjs-fluid") : this.removeClass("vjs-fluid"), void this.updateStyleEl_())
            }, e.prototype.aspectRatio = function (t) {
                if (void 0 === t)return this.aspectRatio_;
                if (!/^\d+\:\d+$/.test(t))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");
                this.aspectRatio_ = t, this.fluid(!0), this.updateStyleEl_()
            }, e.prototype.updateStyleEl_ = function () {
                if (d["default"].VIDEOJS_NO_DYNAMIC_STYLE === !0) {
                    var t = "number" == typeof this.width_ ? this.width_ : this.options_.width, e = "number" == typeof this.height_ ? this.height_ : this.options_.height, n = this.tech_ && this.tech_.el();
                    return void(n && (t >= 0 && (n.width = t), e >= 0 && (n.height = e)))
                }
                var i = void 0, o = void 0, r = void 0, s = void 0;
                r = void 0 !== this.aspectRatio_ && "auto" !== this.aspectRatio_ ? this.aspectRatio_ : this.videoWidth() > 0 ? this.videoWidth() + ":" + this.videoHeight() : "16:9";
                var a = r.split(":"), l = a[1] / a[0];
                i = void 0 !== this.width_ ? this.width_ : void 0 !== this.height_ ? this.height_ / l : this.videoWidth() || 300, o = void 0 !== this.height_ ? this.height_ : i * l, s = /^[^a-zA-Z]/.test(this.id()) ? "dimensions-" + this.id() : this.id() + "-dimensions", this.addClass(s), M.setTextContent(this.styleEl_, "\n      ." + s + " {\n        width: " + i + "px;\n        height: " + o + "px;\n      }\n\n      ." + s + ".vjs-fluid {\n        padding-top: " + 100 * l + "%;\n      }\n    ")
            }, e.prototype.loadTech_ = function (t, e) {
                var n = this;
                this.tech_ && this.unloadTech_(), "Html5" !== t && this.tag && (G["default"].getTech("Html5").disposeMediaElement(this.tag), this.tag.player = null, this.tag = null), this.techName_ = t, this.isReady_ = !1;
                var i = (0, $["default"])({
                    source: e,
                    nativeControlsForTouch: this.options_.nativeControlsForTouch,
                    playerId: this.id(),
                    techId: this.id() + "_" + t + "_api",
                    videoTracks: this.videoTracks_,
                    textTracks: this.textTracks_,
                    audioTracks: this.audioTracks_,
                    autoplay: this.options_.autoplay,
                    preload: this.options_.preload,
                    loop: this.options_.loop,
                    muted: this.options_.muted,
                    poster: this.poster(),
                    language: this.language(),
                    "vtt.js": this.options_["vtt.js"]
                }, this.options_[t.toLowerCase()]);
                this.tag && (i.tag = this.tag), e && (this.currentType_ = e.type, e.src === this.cache_.src && this.cache_.currentTime > 0 && (i.startTime = this.cache_.currentTime), this.cache_.sources = null, this.cache_.source = e, this.cache_.src = e.src);
                var o = G["default"].getTech(t);
                o || (o = u["default"].getComponent(t)), this.tech_ = new o(i), this.tech_.ready(b.bind(this, this.handleTechReady_), !0), V["default"].jsonToTextTracks(this.textTracksJson_ || [], this.tech_), Z.forEach(function (t) {
                    n.on(n.tech_, t, n["handleTech" + (0, x["default"])(t) + "_"])
                }), this.on(this.tech_, "loadstart", this.handleTechLoadStart_), this.on(this.tech_, "waiting", this.handleTechWaiting_), this.on(this.tech_, "canplay", this.handleTechCanPlay_), this.on(this.tech_, "canplaythrough", this.handleTechCanPlayThrough_), this.on(this.tech_, "playing", this.handleTechPlaying_), this.on(this.tech_, "ended", this.handleTechEnded_), this.on(this.tech_, "seeking", this.handleTechSeeking_), this.on(this.tech_, "seeked", this.handleTechSeeked_), this.on(this.tech_, "play", this.handleTechPlay_), this.on(this.tech_, "firstplay", this.handleTechFirstPlay_), this.on(this.tech_, "pause", this.handleTechPause_), this.on(this.tech_, "durationchange", this.handleTechDurationChange_), this.on(this.tech_, "fullscreenchange", this.handleTechFullscreenChange_), this.on(this.tech_, "error", this.handleTechError_), this.on(this.tech_, "loadedmetadata", this.updateStyleEl_), this.on(this.tech_, "posterchange", this.handleTechPosterChange_), this.on(this.tech_, "textdata", this.handleTechTextData_), this.usingNativeControls(this.techGet_("controls")), this.controls() && !this.usingNativeControls() && this.addTechControlsListeners_(), this.tech_.el().parentNode === this.el() || "Html5" === t && this.tag || m.insertElFirst(this.tech_.el(), this.el()), this.tag && (this.tag.player = null, this.tag = null)
            }, e.prototype.unloadTech_ = function () {
                this.videoTracks_ = this.videoTracks(), this.textTracks_ = this.textTracks(), this.audioTracks_ = this.audioTracks(), this.textTracksJson_ = V["default"].textTracksToJson(this.tech_), this.isReady_ = !1, this.tech_.dispose(), this.tech_ = !1
            }, e.prototype.tech = function (t) {
                if (t && t.IWillNotUseThisInPlugins)return this.tech_;
                var e = "\n      Please make sure that you are not using this inside of a plugin.\n      To disable this alert and error, please pass in an object with\n      `IWillNotUseThisInPlugins` to the `tech` method. See\n      https://github.com/videojs/video.js/issues/2617 for more info.\n    ";
                throw d["default"].alert(e), new Error(e)
            }, e.prototype.addTechControlsListeners_ = function () {
                this.removeTechControlsListeners_(), this.on(this.tech_, "mousedown", this.handleTechClick_), this.on(this.tech_, "touchstart", this.handleTechTouchStart_), this.on(this.tech_, "touchmove", this.handleTechTouchMove_), this.on(this.tech_, "touchend", this.handleTechTouchEnd_), this.on(this.tech_, "tap", this.handleTechTap_)
            }, e.prototype.removeTechControlsListeners_ = function () {
                this.off(this.tech_, "tap", this.handleTechTap_), this.off(this.tech_, "touchstart", this.handleTechTouchStart_), this.off(this.tech_, "touchmove", this.handleTechTouchMove_), this.off(this.tech_, "touchend", this.handleTechTouchEnd_), this.off(this.tech_, "mousedown", this.handleTechClick_)
            }, e.prototype.handleTechReady_ = function () {
                if (this.triggerReady(), this.cache_.volume && this.techCall_("setVolume", this.cache_.volume), this.handleTechPosterChange_(), this.handleTechDurationChange_(), (this.src() || this.currentSrc()) && this.tag && this.options_.autoplay && this.paused()) {
                    try {
                        delete this.tag.poster
                    } catch (t) {
                        (0, T["default"])("deleting tag.poster throws in some browsers", t)
                    }
                    this.play()
                }
            }, e.prototype.handleTechLoadStart_ = function () {
                this.removeClass("vjs-ended"), this.error(null), this.paused() ? (this.hasStarted(!1), this.trigger("loadstart")) : (this.trigger("loadstart"), this.trigger("firstplay"))
            }, e.prototype.hasStarted = function (t) {
                return void 0 !== t ? (this.hasStarted_ !== t && (this.hasStarted_ = t, t ? (this.addClass("vjs-has-started"), this.trigger("firstplay")) : this.removeClass("vjs-has-started")), this) : !!this.hasStarted_
            }, e.prototype.handleTechPlay_ = function () {
                this.removeClass("vjs-ended"), this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.hasStarted(!0), this.trigger("play")
            }, e.prototype.handleTechWaiting_ = function () {
                var t = this;
                this.addClass("vjs-waiting"), this.trigger("waiting"), this.one("timeupdate", function () {
                    return t.removeClass("vjs-waiting")
                })
            }, e.prototype.handleTechCanPlay_ = function () {
                this.removeClass("vjs-waiting"), this.trigger("canplay")
            }, e.prototype.handleTechCanPlayThrough_ = function () {
                this.removeClass("vjs-waiting"), this.trigger("canplaythrough")
            }, e.prototype.handleTechPlaying_ = function () {
                this.removeClass("vjs-waiting"), this.trigger("playing")
            }, e.prototype.handleTechSeeking_ = function () {
                this.addClass("vjs-seeking"), this.trigger("seeking")
            }, e.prototype.handleTechSeeked_ = function () {
                this.removeClass("vjs-seeking"), this.trigger("seeked")
            }, e.prototype.handleTechFirstPlay_ = function () {
                this.options_.starttime && this.currentTime(this.options_.starttime), this.addClass("vjs-has-started"), this.trigger("firstplay")
            }, e.prototype.handleTechPause_ = function () {
                this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.trigger("pause")
            }, e.prototype.handleTechEnded_ = function () {
                this.addClass("vjs-ended"), this.options_.loop ? (this.currentTime(0), this.play()) : this.paused() || this.pause(), this.trigger("ended")
            }, e.prototype.handleTechDurationChange_ = function () {
                this.duration(this.techGet_("duration"))
            }, e.prototype.handleTechClick_ = function (t) {
                0 === t.button && this.controls() && (this.paused() ? this.play() : this.pause())
            }, e.prototype.handleTechTap_ = function () {
                this.userActive(!this.userActive())
            }, e.prototype.handleTechTouchStart_ = function () {
                this.userWasActive = this.userActive()
            }, e.prototype.handleTechTouchMove_ = function () {
                this.userWasActive && this.reportUserActivity()
            }, e.prototype.handleTechTouchEnd_ = function (t) {
                t.preventDefault()
            }, e.prototype.handleFullscreenChange_ = function () {
                this.isFullscreen() ? this.addClass("vjs-fullscreen") : this.removeClass("vjs-fullscreen")
            }, e.prototype.handleStageClick_ = function () {
                this.reportUserActivity()
            }, e.prototype.handleTechFullscreenChange_ = function (t, e) {
                e && this.isFullscreen(e.isFullscreen), this.trigger("fullscreenchange")
            }, e.prototype.handleTechError_ = function () {
                var t = this.tech_.error();
                this.error(t)
            }, e.prototype.handleTechTextData_ = function () {
                var t = null;
                arguments.length > 1 && (t = arguments[1]), this.trigger("textdata", t)
            }, e.prototype.getCache = function () {
                return this.cache_
            }, e.prototype.techCall_ = function (t, e) {
                if (this.tech_ && !this.tech_.isReady_) this.tech_.ready(function () {
                    this[t](e)
                }, !0); else try {
                    this.tech_ && this.tech_[t](e)
                } catch (n) {
                    throw(0, T["default"])(n), n
                }
            }, e.prototype.techGet_ = function (t) {
                if (this.tech_ && this.tech_.isReady_)try {
                    return this.tech_[t]()
                } catch (e) {
                    throw void 0 === this.tech_[t] ? (0, T["default"])("Video.js: " + t + " method not defined for " + this.techName_ + " playback technology.", e) : "TypeError" === e.name ? ((0, T["default"])("Video.js: " + t + " unavailable on " + this.techName_ + " playback technology element.", e), this.tech_.isReady_ = !1) : (0, T["default"])(e), e
                }
            }, e.prototype.play = function () {
                return this.src() || this.currentSrc() ? this.techCall_("play") : this.tech_.one("loadstart", function () {
                        this.play()
                    }), this
            }, e.prototype.pause = function () {
                return this.techCall_("pause"), this
            }, e.prototype.paused = function () {
                return this.techGet_("paused") !== !1
            }, e.prototype.scrubbing = function (t) {
                return void 0 !== t ? (this.scrubbing_ = !!t, t ? this.addClass("vjs-scrubbing") : this.removeClass("vjs-scrubbing"), this) : this.scrubbing_
            }, e.prototype.currentTime = function (t) {
                return void 0 !== t ? (this.techCall_("setCurrentTime", t), this) : (this.cache_.currentTime = this.techGet_("currentTime") || 0, this.cache_.currentTime)
            }, e.prototype.duration = function (t) {
                return void 0 === t ? this.cache_.duration || 0 : (t = parseFloat(t) || 0, t < 0 && (t = 1 / 0), t !== this.cache_.duration && (this.cache_.duration = t, t === 1 / 0 ? this.addClass("vjs-live") : this.removeClass("vjs-live"), this.trigger("durationchange")), this)
            }, e.prototype.remainingTime = function () {
                return this.duration() - this.currentTime()
            }, e.prototype.buffered = function n() {
                var n = this.techGet_("buffered");
                return n && n.length || (n = (0, O.createTimeRange)(0, 0)), n
            }, e.prototype.bufferedPercent = function () {
                return (0, E.bufferedPercent)(this.buffered(), this.duration())
            }, e.prototype.bufferedEnd = function () {
                var t = this.buffered(), e = this.duration(), n = t.end(t.length - 1);
                return n > e && (n = e), n
            }, e.prototype.volume = function (t) {
                var e = void 0;
                return void 0 !== t ? (e = Math.max(0, Math.min(1, parseFloat(t))), this.cache_.volume = e, this.techCall_("setVolume", e), this) : (e = parseFloat(this.techGet_("volume")), isNaN(e) ? 1 : e)
            }, e.prototype.muted = function (t) {
                return void 0 !== t ? (this.techCall_("setMuted", t), this) : this.techGet_("muted") || !1
            }, e.prototype.supportsFullScreen = function () {
                return this.techGet_("supportsFullScreen") || !1
            }, e.prototype.isFullscreen = function (t) {
                return void 0 !== t ? (this.isFullscreen_ = !!t, this) : !!this.isFullscreen_
            }, e.prototype.requestFullscreen = function () {
                var t = L["default"];
                return this.isFullscreen(!0), t.requestFullscreen ? (y.on(h["default"], t.fullscreenchange, b.bind(this, function e(n) {
                        this.isFullscreen(h["default"][t.fullscreenElement]), this.isFullscreen() === !1 && y.off(h["default"], t.fullscreenchange, e), this.trigger("fullscreenchange")
                    })), this.el_[t.requestFullscreen]()) : this.tech_.supportsFullScreen() ? this.techCall_("enterFullScreen") : (this.enterFullWindow(), this.trigger("fullscreenchange")), this
            }, e.prototype.exitFullscreen = function () {
                var t = L["default"];
                return this.isFullscreen(!1), t.requestFullscreen ? h["default"][t.exitFullscreen]() : this.tech_.supportsFullScreen() ? this.techCall_("exitFullScreen") : (this.exitFullWindow(), this.trigger("fullscreenchange")), this
            }, e.prototype.enterFullWindow = function () {
                this.isFullWindow = !0, this.docOrigOverflow = h["default"].documentElement.style.overflow, y.on(h["default"], "keydown", b.bind(this, this.fullWindowOnEscKey)), h["default"].documentElement.style.overflow = "hidden", m.addElClass(h["default"].body, "vjs-full-window"), this.trigger("enterFullWindow")
            }, e.prototype.fullWindowOnEscKey = function (t) {
                27 === t.keyCode && (this.isFullscreen() === !0 ? this.exitFullscreen() : this.exitFullWindow())
            }, e.prototype.exitFullWindow = function () {
                this.isFullWindow = !1, y.off(h["default"], "keydown", this.fullWindowOnEscKey),
                    h["default"].documentElement.style.overflow = this.docOrigOverflow, m.removeElClass(h["default"].body, "vjs-full-window"), this.trigger("exitFullWindow")
            }, e.prototype.canPlayType = function (t) {
                for (var e = void 0, n = 0, i = this.options_.techOrder; n < i.length; n++) {
                    var o = (0, x["default"])(i[n]), r = G["default"].getTech(o);
                    if (r || (r = u["default"].getComponent(o)), r) {
                        if (r.isSupported() && (e = r.canPlayType(t)))return e
                    } else T["default"].error('The "' + o + '" tech is undefined. Skipped browser support check for that tech.')
                }
                return ""
            }, e.prototype.selectSource = function (t) {
                var e = this, n = this.options_.techOrder.map(x["default"]).map(function (t) {
                    return [t, G["default"].getTech(t) || u["default"].getComponent(t)]
                }).filter(function (t) {
                    var e = t[0], n = t[1];
                    return n ? n.isSupported() : (T["default"].error('The "' + e + '" tech is undefined. Skipped browser support check for that tech.'), !1)
                }), i = function (t, e, n) {
                    var i = void 0;
                    return t.some(function (t) {
                        return e.some(function (e) {
                            if (i = n(t, e))return !0
                        })
                    }), i
                }, o = void 0, r = function (t) {
                    return function (e, n) {
                        return t(n, e)
                    }
                }, s = function (t, n) {
                    var i = t[0], o = t[1];
                    if (o.canPlaySource(n, e.options_[i.toLowerCase()]))return {source: n, tech: i}
                };
                return o = this.options_.sourceOrder ? i(t, n, r(s)) : i(n, t, s), o || !1
            }, e.prototype.src = function (t) {
                if (void 0 === t)return this.techGet_("src");
                var e = G["default"].getTech(this.techName_);
                return e || (e = u["default"].getComponent(this.techName_)), Array.isArray(t) ? this.sourceList_(t) : "string" == typeof t ? this.src({src: t}) : t instanceof Object && (t.type && !e.canPlaySource(t, this.options_[this.techName_.toLowerCase()]) ? this.sourceList_([t]) : (this.cache_.sources = null, this.cache_.source = t, this.cache_.src = t.src, this.currentType_ = t.type || "", this.ready(function () {
                                e.prototype.hasOwnProperty("setSource") ? this.techCall_("setSource", t) : this.techCall_("src", t.src), "auto" === this.options_.preload && this.load(), this.options_.autoplay && this.play()
                            }, !0))), this
            }, e.prototype.sourceList_ = function (t) {
                var e = this.selectSource(t);
                e ? (e.tech === this.techName_ ? this.src(e.source) : this.loadTech_(e.tech, e.source), this.cache_.sources = t) : (this.setTimeout(function () {
                        this.error({code: 4, message: this.localize(this.options_.notSupportedMessage)})
                    }, 0), this.triggerReady())
            }, e.prototype.load = function () {
                return this.techCall_("load"), this
            }, e.prototype.reset = function () {
                return this.loadTech_((0, x["default"])(this.options_.techOrder[0]), null), this.techCall_("reset"), this
            }, e.prototype.currentSources = function () {
                var t = this.currentSource(), e = [];
                return 0 !== Object.keys(t).length && e.push(t), this.cache_.sources || e
            }, e.prototype.currentSource = function () {
                var t = {}, e = this.currentSrc();
                return e && (t.src = e), this.cache_.source || t
            }, e.prototype.currentSrc = function () {
                return this.techGet_("currentSrc") || this.cache_.src || ""
            }, e.prototype.currentType = function () {
                return this.currentType_ || ""
            }, e.prototype.preload = function (t) {
                return void 0 !== t ? (this.techCall_("setPreload", t), this.options_.preload = t, this) : this.techGet_("preload")
            }, e.prototype.autoplay = function (t) {
                return void 0 !== t ? (this.techCall_("setAutoplay", t), this.options_.autoplay = t, this) : this.techGet_("autoplay", t)
            }, e.prototype.loop = function (t) {
                return void 0 !== t ? (this.techCall_("setLoop", t), this.options_.loop = t, this) : this.techGet_("loop")
            }, e.prototype.poster = function (t) {
                return void 0 === t ? this.poster_ : (t || (t = ""), this.poster_ = t, this.techCall_("setPoster", t), this.trigger("posterchange"), this)
            }, e.prototype.handleTechPosterChange_ = function () {
                !this.poster_ && this.tech_ && this.tech_.poster && (this.poster_ = this.tech_.poster() || "", this.trigger("posterchange"))
            }, e.prototype.controls = function (t) {
                return void 0 !== t ? (t = !!t, this.controls_ !== t && (this.controls_ = t, this.usingNativeControls() && this.techCall_("setControls", t), t ? (this.removeClass("vjs-controls-disabled"), this.addClass("vjs-controls-enabled"), this.trigger("controlsenabled"), this.usingNativeControls() || this.addTechControlsListeners_()) : (this.removeClass("vjs-controls-enabled"), this.addClass("vjs-controls-disabled"), this.trigger("controlsdisabled"), this.usingNativeControls() || this.removeTechControlsListeners_())), this) : !!this.controls_
            }, e.prototype.usingNativeControls = function (t) {
                return void 0 !== t ? (t = !!t, this.usingNativeControls_ !== t && (this.usingNativeControls_ = t, t ? (this.addClass("vjs-using-native-controls"), this.trigger("usingnativecontrols")) : (this.removeClass("vjs-using-native-controls"), this.trigger("usingcustomcontrols"))), this) : !!this.usingNativeControls_
            }, e.prototype.error = function (t) {
                return void 0 === t ? this.error_ || null : null === t ? (this.error_ = t, this.removeClass("vjs-error"), this.errorDisplay && this.errorDisplay.close(), this) : (this.error_ = new F["default"](t), this.addClass("vjs-error"), T["default"].error("(CODE:" + this.error_.code + " " + F["default"].errorTypes[this.error_.code] + ")", this.error_.message, this.error_), this.trigger("error"), this)
            }, e.prototype.reportUserActivity = function (t) {
                this.userActivity_ = !0
            }, e.prototype.userActive = function (t) {
                return void 0 !== t ? (t = !!t, t !== this.userActive_ && (this.userActive_ = t, t ? (this.userActivity_ = !0, this.removeClass("vjs-user-inactive"), this.addClass("vjs-user-active"), this.trigger("useractive")) : (this.userActivity_ = !1, this.tech_ && this.tech_.one("mousemove", function (t) {
                            t.stopPropagation(), t.preventDefault()
                        }), this.removeClass("vjs-user-active"), this.addClass("vjs-user-inactive"), this.trigger("userinactive"))), this) : this.userActive_
            }, e.prototype.listenForUserActivity_ = function () {
                var t = void 0, e = void 0, n = void 0, i = b.bind(this, this.reportUserActivity), o = function (t) {
                    t.screenX === e && t.screenY === n || (e = t.screenX, n = t.screenY, i())
                }, r = function () {
                    i(), this.clearInterval(t), t = this.setInterval(i, 250)
                }, s = function (e) {
                    i(), this.clearInterval(t)
                };
                this.on("mousedown", r), this.on("mousemove", o), this.on("mouseup", s), this.on("keydown", i), this.on("keyup", i);
                var a = void 0;
                this.setInterval(function () {
                    if (this.userActivity_) {
                        this.userActivity_ = !1, this.userActive(!0), this.clearTimeout(a);
                        var t = this.options_.inactivityTimeout;
                        t > 0 && (a = this.setTimeout(function () {
                            this.userActivity_ || this.userActive(!1)
                        }, t))
                    }
                }, 250)
            }, e.prototype.playbackRate = function (t) {
                return void 0 !== t ? (this.techCall_("setPlaybackRate", t), this) : this.tech_ && this.tech_.featuresPlaybackRate ? this.techGet_("playbackRate") : 1
            }, e.prototype.isAudio = function (t) {
                return void 0 !== t ? (this.isAudio_ = !!t, this) : !!this.isAudio_
            }, e.prototype.videoTracks = function () {
                return this.tech_ ? this.tech_.videoTracks() : (this.videoTracks_ = this.videoTracks_ || new J["default"], this.videoTracks_)
            }, e.prototype.audioTracks = function () {
                return this.tech_ ? this.tech_.audioTracks() : (this.audioTracks_ = this.audioTracks_ || new X["default"], this.audioTracks_)
            }, e.prototype.textTracks = function () {
                if (this.tech_)return this.tech_.textTracks()
            }, e.prototype.remoteTextTracks = function () {
                if (this.tech_)return this.tech_.remoteTextTracks()
            }, e.prototype.remoteTextTrackEls = function () {
                if (this.tech_)return this.tech_.remoteTextTrackEls()
            }, e.prototype.addTextTrack = function (t, e, n) {
                if (this.tech_)return this.tech_.addTextTrack(t, e, n)
            }, e.prototype.addRemoteTextTrack = function (t, e) {
                if (this.tech_)return this.tech_.addRemoteTextTrack(t, e)
            }, e.prototype.removeRemoteTextTrack = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e = t.track, n = void 0 === e ? arguments[0] : e;
                if (this.tech_)return this.tech_.removeRemoteTextTrack(n)
            }, e.prototype.videoWidth = function () {
                return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0
            }, e.prototype.videoHeight = function () {
                return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0
            }, e.prototype.language = function (t) {
                return void 0 === t ? this.language_ : (this.language_ = String(t).toLowerCase(), this)
            }, e.prototype.languages = function () {
                return (0, W["default"])(e.prototype.options_.languages, this.languages_)
            }, e.prototype.toJSON = function () {
                var t = (0, W["default"])(this.options_), e = t.tracks;
                t.tracks = [];
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i = (0, W["default"])(i), i.player = void 0, t.tracks[n] = i
                }
                return t
            }, e.prototype.createModal = function (t, e) {
                var n = this;
                e = e || {}, e.content = t || "";
                var i = new z["default"](this, e);
                return this.addChild(i), i.on("dispose", function () {
                    n.removeChild(i)
                }), i.open()
            }, e.getTagSettings = function (t) {
                var e = {sources: [], tracks: []}, n = m.getElAttributes(t), i = n["data-setup"];
                if (m.hasElClass(t, "vjs-fluid") && (n.fluid = !0), null !== i) {
                    var o = (0, I["default"])(i || "{}"), r = o[0], s = o[1];
                    r && T["default"].error(r), (0, $["default"])(n, s)
                }
                if ((0, $["default"])(e, n), t.hasChildNodes())for (var a = t.childNodes, l = 0, u = a.length; l < u; l++) {
                    var c = a[l], h = c.nodeName.toLowerCase();
                    "source" === h ? e.sources.push(m.getElAttributes(c)) : "track" === h && e.tracks.push(m.getElAttributes(c))
                }
                return e
            }, e.prototype.flexNotSupported_ = function () {
                var t = h["default"].createElement("i");
                return !("flexBasis" in t.style || "webkitFlexBasis" in t.style || "mozFlexBasis" in t.style || "msFlexBasis" in t.style || "msFlexOrder" in t.style)
            }, e
        }(u["default"]);
        Q.players = {};
        var tt = d["default"].navigator;
        Q.prototype.options_ = {
            techOrder: ["html5", "flash"],
            html5: {},
            flash: {},
            defaultVolume: 0,
            inactivityTimeout: 2e3,
            playbackRates: [],
            children: ["mediaLoader", "posterImage", "textTrackDisplay", "loadingSpinner", "bigPlayButton", "controlBar", "errorDisplay", "textTrackSettings"],
            language: tt && (tt.languages && tt.languages[0] || tt.userLanguage || tt.language) || "en",
            languages: {},
            notSupportedMessage: "No compatible source was found for this media."
        }, ["ended", "seeking", "seekable", "networkState", "readyState"].forEach(function (t) {
            Q.prototype[t] = function () {
                return this.techGet_(t)
            }
        }), Z.forEach(function (t) {
            Q.prototype["handleTech" + (0, x["default"])(t) + "_"] = function () {
                return this.trigger(t)
            }
        }), u["default"].registerComponent("Player", Q), n["default"] = Q
    }, {
        "./big-play-button.js": 66,
        "./close-button.js": 69,
        "./component.js": 70,
        "./control-bar/control-bar.js": 73,
        "./error-display.js": 106,
        "./fullscreen-api.js": 109,
        "./loading-spinner.js": 110,
        "./media-error.js": 111,
        "./modal-dialog": 115,
        "./poster-image.js": 120,
        "./tech/flash.js": 125,
        "./tech/html5.js": 126,
        "./tech/loader.js": 127,
        "./tech/tech.js": 128,
        "./tracks/audio-track-list.js": 129,
        "./tracks/text-track-display.js": 134,
        "./tracks/text-track-list-converter.js": 135,
        "./tracks/text-track-settings.js": 137,
        "./tracks/video-track-list.js": 142,
        "./utils/browser.js": 144,
        "./utils/buffer.js": 145,
        "./utils/dom.js": 147,
        "./utils/events.js": 148,
        "./utils/fn.js": 149,
        "./utils/guid.js": 151,
        "./utils/log.js": 152,
        "./utils/merge-options.js": 153,
        "./utils/stylesheet.js": 155,
        "./utils/time-ranges.js": 156,
        "./utils/to-title-case.js": 157,
        "global/document": 9,
        "global/window": 10,
        "object.assign": 56,
        "safe-json-parse/tuple": 61
    }],
    117: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0;
        var o = t("./player.js"), r = i(o), s = function (t, e) {
            r["default"].prototype[t] = e
        };
        n["default"] = s
    }, {"./player.js": 116}],
    118: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../clickable-component.js"), l = i(a), u = t("../component.js"), c = i(u), h = function (t) {
            function e(n) {
                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                o(this, e);
                var s = r(this, t.call(this, n, i));
                return s.update(), s
            }

            return s(e, t), e.prototype.update = function () {
                var t = this.createPopup();
                this.popup && this.removeChild(this.popup), this.popup = t, this.addChild(t), this.items && 0 === this.items.length ? this.hide() : this.items && this.items.length > 1 && this.show()
            }, e.prototype.createPopup = function () {
            }, e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: this.buildCSSClass()})
            }, e.prototype.buildCSSClass = function () {
                var e = "vjs-menu-button";
                return e += this.options_.inline === !0 ? "-inline" : "-popup", "vjs-menu-button " + e + " " + t.prototype.buildCSSClass.call(this)
            }, e
        }(l["default"]);
        c["default"].registerComponent("PopupButton", h), n["default"] = h
    }, {"../clickable-component.js": 68, "../component.js": 70}],
    119: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../component.js"), u = o(l), c = t("../utils/dom.js"), h = i(c), f = t("../utils/fn.js"), d = i(f), p = t("../utils/events.js"), y = i(p), v = function (t) {
            function e() {
                return r(this, e), s(this, t.apply(this, arguments))
            }

            return a(e, t), e.prototype.addItem = function (t) {
                this.addChild(t), t.on("click", d.bind(this, function () {
                    this.unlockShowing()
                }))
            }, e.prototype.createEl = function () {
                var e = this.options_.contentElType || "ul";
                this.contentEl_ = h.createEl(e, {className: "vjs-menu-content"});
                var n = t.prototype.createEl.call(this, "div", {append: this.contentEl_, className: "vjs-menu"});
                return n.appendChild(this.contentEl_), y.on(n, "click", function (t) {
                    t.preventDefault(), t.stopImmediatePropagation()
                }), n
            }, e
        }(u["default"]);
        u["default"].registerComponent("Popup", v), n["default"] = v
    }, {"../component.js": 70, "../utils/dom.js": 147, "../utils/events.js": 148, "../utils/fn.js": 149}],
    120: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./clickable-component.js"), u = o(l), c = t("./component.js"), h = o(c), f = t("./utils/fn.js"), d = i(f), p = t("./utils/dom.js"), y = i(p), v = t("./utils/browser.js"), m = i(v), g = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.update(), n.on("posterchange", d.bind(o, o.update)), o
            }

            return a(e, t), e.prototype.dispose = function () {
                this.player().off("posterchange", this.update), t.prototype.dispose.call(this)
            }, e.prototype.createEl = function () {
                var t = y.createEl("div", {className: "vjs-poster", tabIndex: -1});
                return m.BACKGROUND_SIZE_SUPPORTED || (this.fallbackImg_ = y.createEl("img"), t.appendChild(this.fallbackImg_)), t
            }, e.prototype.update = function () {
                var t = this.player().poster();
                this.setSrc(t), t ? this.show() : this.hide()
            }, e.prototype.setSrc = function (t) {
                if (this.fallbackImg_) this.fallbackImg_.src = t; else {
                    var e = "";
                    t && (e = 'url("' + t + '")'), this.el_.style.backgroundImage = e
                }
            }, e.prototype.handleClick = function () {
                this.player_.paused() ? this.player_.play() : this.player_.pause()
            }, e
        }(u["default"]);
        h["default"].registerComponent("PosterImage", g), n["default"] = g
    }, {
        "./clickable-component.js": 68,
        "./component.js": 70,
        "./utils/browser.js": 144,
        "./utils/dom.js": 147,
        "./utils/fn.js": 149
    }],
    121: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            e && (d = e), setTimeout(p, t)
        }

        n.__esModule = !0, n.hasLoaded = n.autoSetupTimeout = n.autoSetup = void 0;
        var s = t("./utils/events.js"), a = o(s), l = t("global/document"), u = i(l), c = t("global/window"), h = i(c), f = !1, d = void 0, p = function () {
            var t = u["default"].getElementsByTagName("video"), e = u["default"].getElementsByTagName("audio"), n = [];
            if (t && t.length > 0)for (var i = 0, o = t.length; i < o; i++)n.push(t[i]);
            if (e && e.length > 0)for (var s = 0, a = e.length; s < a; s++)n.push(e[s]);
            if (n && n.length > 0)for (var l = 0, c = n.length; l < c; l++) {
                var h = n[l];
                if (!h || !h.getAttribute) {
                    r(1);
                    break
                }
                if (void 0 === h.player) {
                    var p = h.getAttribute("data-setup");
                    null !== p && d(h)
                }
            } else f || r(1)
        };
        "complete" === u["default"].readyState ? f = !0 : a.one(h["default"], "load", function () {
                f = !0
            });
        var y = function () {
            return f
        };
        n.autoSetup = p, n.autoSetupTimeout = r, n.hasLoaded = y
    }, {"./utils/events.js": 148, "global/document": 9, "global/window": 10}],
    122: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../component.js"), u = o(l), c = t("../utils/dom.js"), h = i(c), f = t("object.assign"), d = o(f), p = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.bar = o.getChild(o.options_.barName), o.vertical(!!o.options_.vertical), o.on("mousedown", o.handleMouseDown), o.on("touchstart", o.handleMouseDown), o.on("focus", o.handleFocus), o.on("blur", o.handleBlur), o.on("click", o.handleClick), o.on(n, "controlsvisible", o.update), o.on(n, o.playerEvent, o.update), o
            }

            return a(e, t), e.prototype.createEl = function (e) {
                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
                return n.className = n.className + " vjs-slider", n = (0, d["default"])({tabIndex: 0}, n), i = (0, d["default"])({
                    role: "slider",
                    "aria-valuenow": 0,
                    "aria-valuemin": 0,
                    "aria-valuemax": 100,
                    tabIndex: 0
                }, i), t.prototype.createEl.call(this, e, n, i)
            }, e.prototype.handleMouseDown = function (t) {
                var e = this.bar.el_.ownerDocument;
                t.preventDefault(), h.blockTextSelection(), this.addClass("vjs-sliding"), this.trigger("slideractive"), this.on(e, "mousemove", this.handleMouseMove), this.on(e, "mouseup", this.handleMouseUp), this.on(e, "touchmove", this.handleMouseMove), this.on(e, "touchend", this.handleMouseUp), this.handleMouseMove(t)
            }, e.prototype.handleMouseMove = function () {
            }, e.prototype.handleMouseUp = function () {
                var t = this.bar.el_.ownerDocument;
                h.unblockTextSelection(), this.removeClass("vjs-sliding"), this.trigger("sliderinactive"), this.off(t, "mousemove", this.handleMouseMove), this.off(t, "mouseup", this.handleMouseUp), this.off(t, "touchmove", this.handleMouseMove), this.off(t, "touchend", this.handleMouseUp), this.update()
            }, e.prototype.update = function () {
                if (this.el_) {
                    var t = this.getPercent(), e = this.bar;
                    if (e) {
                        ("number" != typeof t || t !== t || t < 0 || t === 1 / 0) && (t = 0);
                        var n = (100 * t).toFixed(2) + "%";
                        this.vertical() ? e.el().style.height = n : e.el().style.width = n
                    }
                }
            }, e.prototype.calculateDistance = function (t) {
                var e = h.getPointerPosition(this.el_, t);
                return this.vertical() ? e.y : e.x
            }, e.prototype.handleFocus = function () {
                this.on(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress)
            }, e.prototype.handleKeyPress = function (t) {
                37 === t.which || 40 === t.which ? (t.preventDefault(), this.stepBack()) : 38 !== t.which && 39 !== t.which || (t.preventDefault(), this.stepForward())
            }, e.prototype.handleBlur = function () {
                this.off(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress)
            }, e.prototype.handleClick = function (t) {
                t.stopImmediatePropagation(), t.preventDefault()
            }, e.prototype.vertical = function (t) {
                return void 0 === t ? this.vertical_ || !1 : (this.vertical_ = !!t, this.vertical_ ? this.addClass("vjs-slider-vertical") : this.addClass("vjs-slider-horizontal"), this)
            }, e
        }(u["default"]);
        u["default"].registerComponent("Slider", p), n["default"] = p
    }, {"../component.js": 70, "../utils/dom.js": 147, "object.assign": 56}],
    123: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            var n = function () {
                var i = (new Date).getTime();
                return i - n.lastCheckTime_ >= e && (n.lastCheckTime_ = i, n.cache_ = t()), n.cache_
            };
            return n.lastCheckTime_ = -(1 / 0), n
        }

        n.__esModule = !0, n["default"] = i
    }, {}],
    124: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t.streamingFormats = {"rtmp/mp4": "MP4", "rtmp/flv": "FLV"}, t.streamFromParts = function (t, e) {
                return t + "&" + e
            }, t.streamToParts = function (t) {
                var e = {connection: "", stream: ""};
                if (!t)return e;
                var n = t.search(/&(?!\w+=)/), i = void 0;
                return n !== -1 ? i = n + 1 : (n = i = t.lastIndexOf("/") + 1, 0 === n && (n = i = t.length)), e.connection = t.substring(0, n), e.stream = t.substring(i, t.length), e
            }, t.isStreamingType = function (e) {
                return e in t.streamingFormats
            }, t.RTMP_RE = /^rtmp[set]?:\/\//i, t.isStreamingSrc = function (e) {
                return t.RTMP_RE.test(e)
            }, t.rtmpSourceHandler = {}, t.rtmpSourceHandler.canPlayType = function (e) {
                return t.isStreamingType(e) ? "maybe" : ""
            }, t.rtmpSourceHandler.canHandleSource = function (e, n) {
                var i = t.rtmpSourceHandler.canPlayType(e.type);
                return i ? i : t.isStreamingSrc(e.src) ? "maybe" : ""
            }, t.rtmpSourceHandler.handleSource = function (e, n, i) {
                var o = t.streamToParts(e.src);
                n.setRtmpConnection(o.connection), n.setRtmpStream(o.stream)
            }, t.registerSourceHandler(t.rtmpSourceHandler), t
        }

        n.__esModule = !0, n["default"] = i
    }, {}],
    125: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        function l(t) {
            var e = t.charAt(0).toUpperCase() + t.slice(1);
            E["set" + e] = function (e) {
                return this.el_.vjs_setProperty(t, e)
            }
        }

        function u(t) {
            E[t] = function () {
                return this.el_.vjs_getProperty(t)
            }
        }

        n.__esModule = !0;
        for (var c = t("./tech"), h = o(c), f = t("../utils/dom.js"), d = i(f), p = t("../utils/url.js"), y = i(p), v = t("../utils/time-ranges.js"), m = t("./flash-rtmp"), g = o(m), b = t("./flash-cache.js"), _ = o(b), w = t("../component"), k = o(w), C = t("global/window"), j = o(C), T = t("object.assign"), S = o(T), x = j["default"].navigator, O = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                n.source && o.ready(function () {
                    this.setSource(n.source)
                }, !0), n.startTime && o.ready(function () {
                    this.load(), this.play(), this.currentTime(n.startTime)
                }, !0), j["default"].videojs = j["default"].videojs || {}, j["default"].videojs.Flash = j["default"].videojs.Flash || {}, j["default"].videojs.Flash.onReady = e.onReady, j["default"].videojs.Flash.onEvent = e.onEvent, j["default"].videojs.Flash.onError = e.onError, o.on("seeked", function () {
                    this.lastSeekTarget_ = void 0
                });
                var a = (0, _["default"])(function () {
                    return o.el_.vjs_getProperty("currentTime")
                }, 100);
                return o.currentTime = function (t) {
                    return o.seeking() ? o.lastSeekTarget_ || 0 : a()
                }, o.buffered = (0, _["default"])(function () {
                    var t = o.el_.vjs_getProperty("buffered");
                    return 0 === t.length ? (0, v.createTimeRange)() : (0, v.createTimeRange)(t[0][0], t[0][1])
                }, 100), o
            }

            return a(e, t), e.prototype.createEl = function () {
                var t = this.options_;
                if (!t.swf) {
                    var n = "5.1.0";
                    t.swf = "//vjs.zencdn.net/swf/" + n + "/video-js.swf"
                }
                var i = t.techId, o = (0, S["default"])({
                    readyFunction: "videojs.Flash.onReady",
                    eventProxyFunction: "videojs.Flash.onEvent",
                    errorEventProxyFunction: "videojs.Flash.onError",
                    autoplay: t.autoplay,
                    preload: t.preload,
                    loop: t.loop,
                    muted: t.muted
                }, t.flashVars), r = (0, S["default"])({
                    wmode: "opaque",
                    bgcolor: "#000000"
                }, t.params), s = (0, S["default"])({id: i, name: i, "class": "vjs-tech"}, t.attributes);
                return this.el_ = e.embed(t.swf, o, r, s), this.el_.tech = this, this.el_
            }, e.prototype.play = function () {
                this.ended() && this.setCurrentTime(0), this.el_.vjs_play()
            }, e.prototype.pause = function () {
                this.el_.vjs_pause()
            }, e.prototype.src = function (t) {
                return void 0 === t ? this.currentSrc() : this.setSrc(t)
            }, e.prototype.setSrc = function (t) {
                var e = this;
                t = y.getAbsoluteURL(t), this.el_.vjs_src(t), this.autoplay() && this.setTimeout(function () {
                    return e.play()
                }, 0)
            }, e.prototype.seeking = function () {
                return void 0 !== this.lastSeekTarget_
            }, e.prototype.setCurrentTime = function (e) {
                var n = this.seekable();
                n.length && (e = e > n.start(0) ? e : n.start(0), e = e < n.end(n.length - 1) ? e : n.end(n.length - 1), this.lastSeekTarget_ = e, this.trigger("seeking"), this.el_.vjs_setProperty("currentTime", e), t.prototype.setCurrentTime.call(this))
            }, e.prototype.currentSrc = function () {
                return this.currentSource_ ? this.currentSource_.src : this.el_.vjs_getProperty("currentSrc")
            }, e.prototype.duration = function n() {
                if (0 === this.readyState())return NaN;
                var n = this.el_.vjs_getProperty("duration");
                return n >= 0 ? n : 1 / 0
            }, e.prototype.load = function () {
                this.el_.vjs_load()
            }, e.prototype.poster = function () {
                this.el_.vjs_getProperty("poster")
            }, e.prototype.setPoster = function () {
            }, e.prototype.seekable = function () {
                var t = this.duration();
                return 0 === t ? (0, v.createTimeRange)() : (0, v.createTimeRange)(0, t)
            }, e.prototype.supportsFullScreen = function () {
                return !1
            }, e.prototype.enterFullScreen = function () {
                return !1
            }, e
        }(h["default"]), E = O.prototype, P = "rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","), M = "networkState,readyState,initialTime,startOffsetTime,paused,ended,videoWidth,videoHeight".split(","), A = 0; A < P.length; A++)u(P[A]), l(P[A]);
        for (var L = 0; L < M.length; L++)u(M[L]);
        O.isSupported = function () {
            return O.version()[0] >= 10
        }, h["default"].withSourceHandlers(O), O.nativeSourceHandler = {}, O.nativeSourceHandler.canPlayType = function (t) {
            return t in O.formats ? "maybe" : ""
        }, O.nativeSourceHandler.canHandleSource = function (t, e) {
            function n(t) {
                var e = y.getFileExtension(t);
                return e ? "video/" + e : ""
            }

            var i = void 0;
            return i = t.type ? t.type.replace(/;.*/, "").toLowerCase() : n(t.src), O.nativeSourceHandler.canPlayType(i)
        }, O.nativeSourceHandler.handleSource = function (t, e, n) {
            e.setSrc(t.src)
        }, O.nativeSourceHandler.dispose = function () {
        }, O.registerSourceHandler(O.nativeSourceHandler), O.formats = {
            "video/flv": "FLV",
            "video/x-flv": "FLV",
            "video/mp4": "MP4",
            "video/m4v": "MP4"
        }, O.onReady = function (t) {
            var e = d.getEl(t), n = e && e.tech;
            n && n.el() && O.checkReady(n)
        }, O.checkReady = function (t) {
            t.el() && (t.el().vjs_getProperty ? t.triggerReady() : this.setTimeout(function () {
                    O.checkReady(t)
                }, 50))
        }, O.onEvent = function (t, e) {
            var n = d.getEl(t).tech, i = Array.prototype.slice.call(arguments, 2);
            n.setTimeout(function () {
                n.trigger(e, i)
            }, 1)
        }, O.onError = function (t, e) {
            var n = d.getEl(t).tech;
            return "srcnotfound" === e ? n.error(4) : void n.error("FLASH: " + e)
        }, O.version = function () {
            var t = "0,0,0";
            try {
                t = new j["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g, ",").match(/^,?(.+),?$/)[1]
            } catch (e) {
                try {
                    x.mimeTypes["application/x-shockwave-flash"].enabledPlugin && (t = (x.plugins["Shockwave Flash 2.0"] || x.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1])
                } catch (n) {
                }
            }
            return t.split(",")
        }, O.embed = function (t, e, n, i) {
            var o = O.getEmbedCode(t, e, n, i), r = d.createEl("div", {innerHTML: o}).childNodes[0];
            return r
        }, O.getEmbedCode = function (t, e, n, i) {
            var o = '<object type="application/x-shockwave-flash" ', r = "", s = "", a = "";
            return e && Object.getOwnPropertyNames(e).forEach(function (t) {
                r += t + "=" + e[t] + "&amp;"
            }), n = (0, S["default"])({
                movie: t,
                flashvars: r,
                allowScriptAccess: "always",
                allowNetworking: "all"
            }, n), Object.getOwnPropertyNames(n).forEach(function (t) {
                s += '<param name="' + t + '" value="' + n[t] + '" />'
            }), i = (0, S["default"])({
                data: t,
                width: "100%",
                height: "100%"
            }, i), Object.getOwnPropertyNames(i).forEach(function (t) {
                a += t + '="' + i[t] + '" '
            }), "" + o + a + ">" + s + "</object>"
        }, (0, g["default"])(O), k["default"].registerComponent("Flash", O), h["default"].registerTech("Flash", O), n["default"] = O
    }, {
        "../component": 70,
        "../utils/dom.js": 147,
        "../utils/time-ranges.js": 156,
        "../utils/url.js": 158,
        "./flash-cache.js": 123,
        "./flash-rtmp": 124,
        "./tech": 128,
        "global/window": 10,
        "object.assign": 56
    }],
    126: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            return t.raw = e, t
        }

        function s(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function a(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function l(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, c = r(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."], ["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."]), h = t("./tech.js"), f = o(h), d = t("../component"), p = o(d), y = t("../utils/dom.js"), v = i(y), m = t("../utils/url.js"), g = i(m), b = t("../utils/fn.js"), _ = i(b), w = t("../utils/log.js"), k = o(w), C = t("tsml"), j = o(C), T = t("../utils/browser.js"), S = i(T), x = t("global/document"), O = o(x), E = t("global/window"), P = o(E), M = t("object.assign"), A = o(M), L = t("../utils/merge-options.js"), D = o(L), F = t("../utils/to-title-case.js"), R = o(F), I = function (t) {
            function e(n, i) {
                s(this, e);
                var o = a(this, t.call(this, n, i)), r = n.source, l = !1;
                if (r && (o.el_.currentSrc !== r.src || n.tag && 3 === n.tag.initNetworkState_) ? o.setSource(r) : o.handleLateInit_(o.el_), o.el_.hasChildNodes()) {
                    for (var u = o.el_.childNodes, h = u.length, f = []; h--;) {
                        var d = u[h], p = d.nodeName.toLowerCase();
                        "track" === p && (o.featuresNativeTextTracks ? (o.remoteTextTrackEls().addTrackElement_(d), o.remoteTextTracks().addTrack_(d.track), l || o.el_.hasAttribute("crossorigin") || !g.isCrossOrigin(d.src) || (l = !0)) : f.push(d))
                    }
                    for (var y = 0; y < f.length; y++)o.el_.removeChild(f[y])
                }
                var v = ["audio", "video"];
                return v.forEach(function (t) {
                    var e = o.el()[t + "Tracks"], n = o[t + "Tracks"](), i = (0, R["default"])(t);
                    o["featuresNative" + i + "Tracks"] && e && e.addEventListener && (o["handle" + i + "TrackChange_"] = function (t) {
                        n.trigger({type: "change", target: n, currentTarget: n, srcElement: n})
                    }, o["handle" + i + "TrackAdd_"] = function (t) {
                        return n.addTrack(t.track)
                    }, o["handle" + i + "TrackRemove_"] = function (t) {
                        return n.removeTrack(t.track)
                    }, e.addEventListener("change", o["handle" + i + "TrackChange_"]), e.addEventListener("addtrack", o["handle" + i + "TrackAdd_"]), e.addEventListener("removetrack", o["handle" + i + "TrackRemove_"]), o["removeOld" + i + "Tracks_"] = function (t) {
                        return o.removeOldTracks_(n, e)
                    }, o.on("loadstart", o["removeOld" + i + "Tracks_"]))
                }), o.featuresNativeTextTracks && (l && k["default"].warn((0, j["default"])(c)), o.handleTextTrackChange_ = _.bind(o, o.handleTextTrackChange), o.handleTextTrackAdd_ = _.bind(o, o.handleTextTrackAdd), o.handleTextTrackRemove_ = _.bind(o, o.handleTextTrackRemove), o.proxyNativeTextTracks_()), (S.TOUCH_ENABLED || S.IS_IPHONE || S.IS_NATIVE_ANDROID) && n.nativeControlsForTouch === !0 && o.setControls(!0),
                    o.proxyWebkitFullscreen_(), o.triggerReady(), o
            }

            return l(e, t), e.prototype.dispose = function () {
                var n = this;
                ["audio", "video", "text"].forEach(function (t) {
                    var e = (0, R["default"])(t), i = n.el_[t + "Tracks"];
                    i && i.removeEventListener && (i.removeEventListener("change", n["handle" + e + "TrackChange_"]), i.removeEventListener("addtrack", n["handle" + e + "TrackAdd_"]), i.removeEventListener("removetrack", n["handle" + e + "TrackRemove_"])), i && n.off("loadstart", n["removeOld" + e + "Tracks_"])
                }), e.disposeMediaElement(this.el_), t.prototype.dispose.call(this)
            }, e.prototype.createEl = function () {
                var t = this.options_.tag;
                if (!t || this.movingMediaElementInDOM === !1) {
                    if (t) {
                        var n = t.cloneNode(!0);
                        t.parentNode.insertBefore(n, t), e.disposeMediaElement(t), t = n
                    } else {
                        t = O["default"].createElement("video");
                        var i = this.options_.tag && v.getElAttributes(this.options_.tag), o = (0, D["default"])({}, i);
                        S.TOUCH_ENABLED && this.options_.nativeControlsForTouch === !0 || delete o.controls, v.setElAttributes(t, (0, A["default"])(o, {
                            id: this.options_.techId,
                            "class": "vjs-tech"
                        }))
                    }
                    t.playerId = this.options_.playerId
                }
                for (var r = ["autoplay", "preload", "loop", "muted"], s = r.length - 1; s >= 0; s--) {
                    var a = r[s], l = {};
                    "undefined" != typeof this.options_[a] && (l[a] = this.options_[a]), v.setElAttributes(t, l)
                }
                return t
            }, e.prototype.handleLateInit_ = function (t) {
                var e = this;
                if (0 !== t.networkState && 3 !== t.networkState) {
                    if (0 === t.readyState) {
                        var n = function () {
                            var t = !1, n = function () {
                                t = !0
                            };
                            e.on("loadstart", n);
                            var i = function () {
                                t || this.trigger("loadstart")
                            };
                            return e.on("loadedmetadata", i), e.ready(function () {
                                this.off("loadstart", n), this.off("loadedmetadata", i), t || this.trigger("loadstart")
                            }), {v: void 0}
                        }();
                        if ("object" === ("undefined" == typeof n ? "undefined" : u(n)))return n.v
                    }
                    var i = ["loadstart"];
                    i.push("loadedmetadata"), t.readyState >= 2 && i.push("loadeddata"), t.readyState >= 3 && i.push("canplay"), t.readyState >= 4 && i.push("canplaythrough"), this.ready(function () {
                        i.forEach(function (t) {
                            this.trigger(t)
                        }, this)
                    })
                }
            }, e.prototype.proxyNativeTextTracks_ = function () {
                var t = this.el().textTracks;
                if (t) {
                    for (var e = 0; e < t.length; e++)this.textTracks().addTrack_(t[e]);
                    t.addEventListener && (t.addEventListener("change", this.handleTextTrackChange_), t.addEventListener("addtrack", this.handleTextTrackAdd_), t.addEventListener("removetrack", this.handleTextTrackRemove_)), this.on("loadstart", this.removeOldTextTracks_)
                }
            }, e.prototype.handleTextTrackChange = function (t) {
                var e = this.textTracks();
                this.textTracks().trigger({type: "change", target: e, currentTarget: e, srcElement: e})
            }, e.prototype.handleTextTrackAdd = function (t) {
                this.textTracks().addTrack_(t.track)
            }, e.prototype.handleTextTrackRemove = function (t) {
                this.textTracks().removeTrack_(t.track)
            }, e.prototype.removeOldTracks_ = function (t, e) {
                var n = [];
                if (e) {
                    for (var i = 0; i < t.length; i++) {
                        for (var o = t[i], r = !1, s = 0; s < e.length; s++)if (e[s] === o) {
                            r = !0;
                            break
                        }
                        r || n.push(o)
                    }
                    for (var a = 0; a < n.length; a++) {
                        var l = n[a];
                        t.removeTrack_(l)
                    }
                }
            }, e.prototype.removeOldTextTracks_ = function () {
                var t = this.textTracks(), e = this.el().textTracks;
                this.removeOldTracks_(t, e)
            }, e.prototype.play = function () {
                var t = this.el_.play();
                void 0 !== t && "function" == typeof t.then && t.then(null, function (t) {
                })
            }, e.prototype.setCurrentTime = function (t) {
                try {
                    this.el_.currentTime = t
                } catch (e) {
                    (0, k["default"])(e, "Video is not ready. (Video.js)")
                }
            }, e.prototype.duration = function () {
                var t = this;
                if (this.el_.duration === 1 / 0 && S.IS_ANDROID && S.IS_CHROME && 0 === this.el_.currentTime) {
                    var e = function () {
                        var e = function n() {
                            t.el_.currentTime > 0 && (t.el_.duration === 1 / 0 && t.trigger("durationchange"), t.off(t.player_, "timeupdate", n))
                        };
                        return t.on(t.player_, "timeupdate", e), {v: NaN}
                    }();
                    if ("object" === ("undefined" == typeof e ? "undefined" : u(e)))return e.v
                }
                return this.el_.duration || NaN
            }, e.prototype.width = function () {
                return this.el_.offsetWidth
            }, e.prototype.height = function () {
                return this.el_.offsetHeight
            }, e.prototype.proxyWebkitFullscreen_ = function () {
                var t = this;
                if ("webkitDisplayingFullscreen" in this.el_) {
                    var e = function () {
                        this.trigger("fullscreenchange", {isFullscreen: !1})
                    }, n = function () {
                        this.one("webkitendfullscreen", e), this.trigger("fullscreenchange", {isFullscreen: !0})
                    };
                    this.on("webkitbeginfullscreen", n), this.on("dispose", function () {
                        t.off("webkitbeginfullscreen", n), t.off("webkitendfullscreen", e)
                    })
                }
            }, e.prototype.supportsFullScreen = function () {
                if ("function" == typeof this.el_.webkitEnterFullScreen) {
                    var t = P["default"].navigator && P["default"].navigator.userAgent || "";
                    if (/Android/.test(t) || !/Chrome|Mac OS X 10.5/.test(t))return !0
                }
                return !1
            }, e.prototype.enterFullScreen = function () {
                var t = this.el_;
                t.paused && t.networkState <= t.HAVE_METADATA ? (this.el_.play(), this.setTimeout(function () {
                        t.pause(), t.webkitEnterFullScreen()
                    }, 0)) : t.webkitEnterFullScreen()
            }, e.prototype.exitFullScreen = function () {
                this.el_.webkitExitFullScreen()
            }, e.prototype.src = function (t) {
                return void 0 === t ? this.el_.src : void this.setSrc(t)
            }, e.prototype.reset = function () {
                e.resetMediaElement(this.el_)
            }, e.prototype.currentSrc = function () {
                return this.currentSource_ ? this.currentSource_.src : this.el_.currentSrc
            }, e.prototype.setControls = function (t) {
                this.el_.controls = !!t
            }, e.prototype.addTextTrack = function (e, n, i) {
                return this.featuresNativeTextTracks ? this.el_.addTextTrack(e, n, i) : t.prototype.addTextTrack.call(this, e, n, i)
            }, e.prototype.createRemoteTextTrack = function (e) {
                if (!this.featuresNativeTextTracks)return t.prototype.createRemoteTextTrack.call(this, e);
                var n = O["default"].createElement("track");
                return e.kind && (n.kind = e.kind), e.label && (n.label = e.label), (e.language || e.srclang) && (n.srclang = e.language || e.srclang), e["default"] && (n["default"] = e["default"]), e.id && (n.id = e.id), e.src && (n.src = e.src), n
            }, e.prototype.addRemoteTextTrack = function (e, n) {
                var i = t.prototype.addRemoteTextTrack.call(this, e, n);
                return this.el().appendChild(i), i
            }, e.prototype.removeRemoteTextTrack = function (e) {
                t.prototype.removeRemoteTextTrack.call(this, e);
                for (var n = this.$$("track"), i = n.length; i--;)e !== n[i] && e !== n[i].track || this.el().removeChild(n[i])
            }, e
        }(f["default"]);
        I.TEST_VID = O["default"].createElement("video");
        var N = O["default"].createElement("track");
        N.kind = "captions", N.srclang = "en", N.label = "English", I.TEST_VID.appendChild(N), I.isSupported = function () {
            try {
                I.TEST_VID.volume = .5
            } catch (t) {
                return !1
            }
            return !!I.TEST_VID.canPlayType
        }, I.canControlVolume = function () {
            try {
                var t = I.TEST_VID.volume;
                return I.TEST_VID.volume = t / 2 + .1, t !== I.TEST_VID.volume
            } catch (e) {
                return !1
            }
        }, I.canControlPlaybackRate = function () {
            if (S.IS_ANDROID && S.IS_CHROME)return !1;
            try {
                var t = I.TEST_VID.playbackRate;
                return I.TEST_VID.playbackRate = t / 2 + .1, t !== I.TEST_VID.playbackRate
            } catch (e) {
                return !1
            }
        }, I.supportsNativeTextTracks = function () {
            var t = void 0;
            return t = !!I.TEST_VID.textTracks, t && I.TEST_VID.textTracks.length > 0 && (t = "number" != typeof I.TEST_VID.textTracks[0].mode), t && S.IS_FIREFOX && (t = !1), !t || "onremovetrack" in I.TEST_VID.textTracks || (t = !1), t
        }, I.supportsNativeVideoTracks = function () {
            var t = !!I.TEST_VID.videoTracks;
            return t
        }, I.supportsNativeAudioTracks = function () {
            var t = !!I.TEST_VID.audioTracks;
            return t
        }, I.Events = ["loadstart", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "progress", "play", "pause", "ratechange", "volumechange"], I.prototype.featuresVolumeControl = I.canControlVolume(), I.prototype.featuresPlaybackRate = I.canControlPlaybackRate(), I.prototype.movingMediaElementInDOM = !S.IS_IOS, I.prototype.featuresFullscreenResize = !0, I.prototype.featuresProgressEvents = !0, I.prototype.featuresTimeupdateEvents = !0, I.prototype.featuresNativeTextTracks = I.supportsNativeTextTracks(), I.prototype.featuresNativeVideoTracks = I.supportsNativeVideoTracks(), I.prototype.featuresNativeAudioTracks = I.supportsNativeAudioTracks();
        var $ = void 0, B = /^application\/(?:x-|vnd\.apple\.)mpegurl/i, W = /^video\/mp4/i;
        I.patchCanPlayType = function () {
            S.ANDROID_VERSION >= 4 && !S.IS_FIREFOX && ($ || ($ = I.TEST_VID.constructor.prototype.canPlayType), I.TEST_VID.constructor.prototype.canPlayType = function (t) {
                return t && B.test(t) ? "maybe" : $.call(this, t)
            }), S.IS_OLD_ANDROID && ($ || ($ = I.TEST_VID.constructor.prototype.canPlayType), I.TEST_VID.constructor.prototype.canPlayType = function (t) {
                return t && W.test(t) ? "maybe" : $.call(this, t)
            })
        }, I.unpatchCanPlayType = function () {
            var t = I.TEST_VID.constructor.prototype.canPlayType;
            return I.TEST_VID.constructor.prototype.canPlayType = $, $ = null, t
        }, I.patchCanPlayType(), I.disposeMediaElement = function (t) {
            if (t) {
                for (t.parentNode && t.parentNode.removeChild(t); t.hasChildNodes();)t.removeChild(t.firstChild);
                t.removeAttribute("src"), "function" == typeof t.load && !function () {
                    try {
                        t.load()
                    } catch (e) {
                    }
                }()
            }
        }, I.resetMediaElement = function (t) {
            if (t) {
                for (var e = t.querySelectorAll("source"), n = e.length; n--;)t.removeChild(e[n]);
                t.removeAttribute("src"), "function" == typeof t.load && !function () {
                    try {
                        t.load()
                    } catch (e) {
                    }
                }()
            }
        }, ["paused", "currentTime", "buffered", "volume", "muted", "poster", "preload", "autoplay", "controls", "loop", "error", "seeking", "seekable", "ended", "defaultMuted", "playbackRate", "played", "networkState", "readyState", "videoWidth", "videoHeight"].forEach(function (t) {
            I.prototype[t] = function () {
                return this.el_[t]
            }
        }), ["volume", "muted", "src", "poster", "preload", "autoplay", "loop", "playbackRate"].forEach(function (t) {
            I.prototype["set" + (0, R["default"])(t)] = function (e) {
                this.el_[t] = e
            }
        }), ["pause", "load"].forEach(function (t) {
            I.prototype[t] = function () {
                return this.el_[t]()
            }
        }), f["default"].withSourceHandlers(I), I.nativeSourceHandler = {}, I.nativeSourceHandler.canPlayType = function (t) {
            try {
                return I.TEST_VID.canPlayType(t)
            } catch (e) {
                return ""
            }
        }, I.nativeSourceHandler.canHandleSource = function (t, e) {
            if (t.type)return I.nativeSourceHandler.canPlayType(t.type);
            if (t.src) {
                var n = g.getFileExtension(t.src);
                return I.nativeSourceHandler.canPlayType("video/" + n)
            }
            return ""
        }, I.nativeSourceHandler.handleSource = function (t, e, n) {
            e.setSrc(t.src)
        }, I.nativeSourceHandler.dispose = function () {
        }, I.registerSourceHandler(I.nativeSourceHandler), p["default"].registerComponent("Html5", I), f["default"].registerTech("Html5", I), n["default"] = I
    }, {
        "../component": 70,
        "../utils/browser.js": 144,
        "../utils/dom.js": 147,
        "../utils/fn.js": 149,
        "../utils/log.js": 152,
        "../utils/merge-options.js": 153,
        "../utils/to-title-case.js": 157,
        "../utils/url.js": 158,
        "./tech.js": 128,
        "global/document": 9,
        "global/window": 10,
        "object.assign": 56,
        tsml: 65
    }],
    127: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function r(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function s(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var a = t("../component.js"), l = i(a), u = t("./tech.js"), c = i(u), h = t("../utils/to-title-case.js"), f = i(h), d = function (t) {
            function e(n, i, s) {
                o(this, e);
                var a = r(this, t.call(this, n, i, s));
                if (i.playerOptions.sources && 0 !== i.playerOptions.sources.length) n.src(i.playerOptions.sources); else for (var u = 0, h = i.playerOptions.techOrder; u < h.length; u++) {
                    var d = (0, f["default"])(h[u]), p = c["default"].getTech(d);
                    if (d || (p = l["default"].getComponent(d)), p && p.isSupported()) {
                        n.loadTech_(d);
                        break
                    }
                }
                return a
            }

            return s(e, t), e
        }(l["default"]);
        l["default"].registerComponent("MediaLoader", d), n["default"] = d
    }, {"../component.js": 70, "../utils/to-title-case.js": 157, "./tech.js": 128}],
    128: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        function l(t, e, n, i) {
            var o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, r = t.textTracks();
            o.kind = e, n && (o.label = n), i && (o.language = i), o.tech = t;
            var s = new g["default"](o);
            return r.addTrack_(s), s
        }

        n.__esModule = !0;
        var u = t("../component"), c = o(u), h = t("../tracks/html-track-element"), f = o(h), d = t("../tracks/html-track-element-list"), p = o(d), y = t("../utils/merge-options.js"), v = o(y), m = t("../tracks/text-track"), g = o(m), b = t("../tracks/text-track-list"), _ = o(b), w = t("../tracks/video-track-list"), k = o(w), C = t("../tracks/audio-track-list"), j = o(C), T = t("../utils/fn.js"), S = i(T), x = t("../utils/log.js"), O = o(x), E = t("../utils/time-ranges.js"), P = t("../utils/buffer.js"), M = t("../media-error.js"), A = o(M), L = t("global/window"), D = o(L), F = t("global/document"), R = o(F), I = function (t) {
            function e() {
                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : function () {
                    };
                r(this, e), n.reportTouchActivity = !1;
                var o = s(this, t.call(this, null, n, i));
                return o.hasStarted_ = !1, o.on("playing", function () {
                    this.hasStarted_ = !0
                }), o.on("loadstart", function () {
                    this.hasStarted_ = !1
                }), o.textTracks_ = n.textTracks, o.videoTracks_ = n.videoTracks, o.audioTracks_ = n.audioTracks, o.featuresProgressEvents || o.manualProgressOn(), o.featuresTimeupdateEvents || o.manualTimeUpdatesOn(), n.nativeCaptions !== !1 && n.nativeTextTracks !== !1 || (o.featuresNativeTextTracks = !1), o.featuresNativeTextTracks || o.emulateTextTracks(), o.autoRemoteTextTracks_ = new _["default"], o.initTextTrackListeners(), o.initTrackListeners(), o.emitTapEvents(), o
            }

            return a(e, t), e.prototype.manualProgressOn = function () {
                this.on("durationchange", this.onDurationChange), this.manualProgress = !0, this.one("ready", this.trackProgress)
            }, e.prototype.manualProgressOff = function () {
                this.manualProgress = !1, this.stopTrackingProgress(), this.off("durationchange", this.onDurationChange)
            }, e.prototype.trackProgress = function () {
                this.stopTrackingProgress(), this.progressInterval = this.setInterval(S.bind(this, function () {
                    var t = this.bufferedPercent();
                    this.bufferedPercent_ !== t && this.trigger("progress"), this.bufferedPercent_ = t, 1 === t && this.stopTrackingProgress()
                }), 500)
            }, e.prototype.onDurationChange = function () {
                this.duration_ = this.duration()
            }, e.prototype.buffered = function () {
                return (0, E.createTimeRange)(0, 0)
            }, e.prototype.bufferedPercent = function () {
                return (0, P.bufferedPercent)(this.buffered(), this.duration_)
            }, e.prototype.stopTrackingProgress = function () {
                this.clearInterval(this.progressInterval)
            }, e.prototype.manualTimeUpdatesOn = function () {
                this.manualTimeUpdates = !0, this.on("play", this.trackCurrentTime), this.on("pause", this.stopTrackingCurrentTime)
            }, e.prototype.manualTimeUpdatesOff = function () {
                this.manualTimeUpdates = !1, this.stopTrackingCurrentTime(), this.off("play", this.trackCurrentTime), this.off("pause", this.stopTrackingCurrentTime)
            }, e.prototype.trackCurrentTime = function () {
                this.currentTimeInterval && this.stopTrackingCurrentTime(), this.currentTimeInterval = this.setInterval(function () {
                    this.trigger({type: "timeupdate", target: this, manuallyTriggered: !0})
                }, 250)
            }, e.prototype.stopTrackingCurrentTime = function () {
                this.clearInterval(this.currentTimeInterval), this.trigger({
                    type: "timeupdate",
                    target: this,
                    manuallyTriggered: !0
                })
            }, e.prototype.dispose = function () {
                this.clearTracks(["audio", "video", "text"]), this.manualProgress && this.manualProgressOff(), this.manualTimeUpdates && this.manualTimeUpdatesOff(), t.prototype.dispose.call(this)
            }, e.prototype.clearTracks = function (t) {
                var e = this;
                t = [].concat(t), t.forEach(function (t) {
                    for (var n = e[t + "Tracks"]() || [], i = n.length; i--;) {
                        var o = n[i];
                        "text" === t && e.removeRemoteTextTrack(o), n.removeTrack_(o)
                    }
                })
            }, e.prototype.cleanupAutoTextTracks = function () {
                for (var t = this.autoRemoteTextTracks_ || [], e = t.length; e--;) {
                    var n = t[e];
                    this.removeRemoteTextTrack(n)
                }
            }, e.prototype.reset = function () {
            }, e.prototype.error = function (t) {
                return void 0 !== t && (this.error_ = new A["default"](t), this.trigger("error")), this.error_
            }, e.prototype.played = function () {
                return this.hasStarted_ ? (0, E.createTimeRange)(0, 0) : (0, E.createTimeRange)()
            }, e.prototype.setCurrentTime = function () {
                this.manualTimeUpdates && this.trigger({type: "timeupdate", target: this, manuallyTriggered: !0})
            }, e.prototype.initTextTrackListeners = function () {
                var t = S.bind(this, function () {
                    this.trigger("texttrackchange")
                }), e = this.textTracks();
                e && (e.addEventListener("removetrack", t), e.addEventListener("addtrack", t), this.on("dispose", S.bind(this, function () {
                    e.removeEventListener("removetrack", t), e.removeEventListener("addtrack", t)
                })))
            }, e.prototype.initTrackListeners = function () {
                var t = this, e = ["video", "audio"];
                e.forEach(function (e) {
                    var n = function () {
                        t.trigger(e + "trackchange")
                    }, i = t[e + "Tracks"]();
                    i.addEventListener("removetrack", n), i.addEventListener("addtrack", n), t.on("dispose", function () {
                        i.removeEventListener("removetrack", n), i.removeEventListener("addtrack", n)
                    })
                })
            }, e.prototype.addWebVttScript_ = function () {
                var t = this;
                D["default"].WebVTT || null === this.el().parentNode || void 0 === this.el().parentNode || !function () {
                    var e = R["default"].createElement("script");
                    e.src = t.options_["vtt.js"] || "../node_modules/videojs-vtt.js/dist/vtt.js", e.onload = function () {
                        t.trigger("vttjsloaded")
                    }, e.onerror = function () {
                        t.trigger("vttjserror")
                    }, t.on("dispose", function () {
                        e.onload = null, e.onerror = null
                    }), D["default"].WebVTT = !0, t.el().parentNode.appendChild(e)
                }()
            }, e.prototype.emulateTextTracks = function () {
                var t = this, e = this.textTracks();
                if (e) {
                    this.remoteTextTracks().on("addtrack", function (e) {
                        t.textTracks().addTrack_(e.track)
                    }), this.remoteTextTracks().on("removetrack", function (e) {
                        t.textTracks().removeTrack_(e.track)
                    }), this.on("ready", this.addWebVttScript_);
                    var n = function () {
                        return t.trigger("texttrackchange")
                    }, i = function () {
                        n();
                        for (var t = 0; t < e.length; t++) {
                            var i = e[t];
                            i.removeEventListener("cuechange", n), "showing" === i.mode && i.addEventListener("cuechange", n)
                        }
                    };
                    i(), e.addEventListener("change", i), this.on("dispose", function () {
                        e.removeEventListener("change", i)
                    })
                }
            }, e.prototype.videoTracks = function () {
                return this.videoTracks_ = this.videoTracks_ || new k["default"], this.videoTracks_
            }, e.prototype.audioTracks = function () {
                return this.audioTracks_ = this.audioTracks_ || new j["default"], this.audioTracks_
            }, e.prototype.textTracks = function () {
                return this.textTracks_ = this.textTracks_ || new _["default"], this.textTracks_
            }, e.prototype.remoteTextTracks = function () {
                return this.remoteTextTracks_ = this.remoteTextTracks_ || new _["default"], this.remoteTextTracks_
            }, e.prototype.remoteTextTrackEls = function () {
                return this.remoteTextTrackEls_ = this.remoteTextTrackEls_ || new p["default"], this.remoteTextTrackEls_
            }, e.prototype.addTextTrack = function (t, e, n) {
                if (!t)throw new Error("TextTrack kind is required but was not provided");
                return l(this, t, e, n)
            }, e.prototype.createRemoteTextTrack = function (t) {
                var e = (0, v["default"])(t, {tech: this});
                return new f["default"](e)
            }, e.prototype.addRemoteTextTrack = function () {
                var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e = arguments[1], n = this.createRemoteTextTrack(t);
                return e !== !0 && e !== !1 && (O["default"].warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'), e = !0), this.remoteTextTrackEls().addTrackElement_(n), this.remoteTextTracks().addTrack_(n.track), e !== !0 && this.autoRemoteTextTracks_.addTrack_(n.track), n
            }, e.prototype.removeRemoteTextTrack = function (t) {
                var e = this.remoteTextTrackEls().getTrackElementByTrack_(t);
                this.remoteTextTrackEls().removeTrackElement_(e), this.remoteTextTracks().removeTrack_(t), this.autoRemoteTextTracks_.removeTrack_(t)
            }, e.prototype.setPoster = function () {
            }, e.prototype.canPlayType = function () {
                return ""
            }, e.isTech = function (t) {
                return t.prototype instanceof e || t instanceof e || t === e
            }, e.registerTech = function (t, n) {
                if (e.techs_ || (e.techs_ = {}), !e.isTech(n))throw new Error("Tech " + t + " must be a Tech");
                return e.techs_[t] = n, n
            }, e.getTech = function (t) {
                return e.techs_ && e.techs_[t] ? e.techs_[t] : D["default"] && D["default"].videojs && D["default"].videojs[t] ? (O["default"].warn("The " + t + " tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"), D["default"].videojs[t]) : void 0
            }, e
        }(c["default"]);
        I.prototype.textTracks_, I.prototype.audioTracks_, I.prototype.videoTracks_, I.prototype.featuresVolumeControl = !0, I.prototype.featuresFullscreenResize = !1, I.prototype.featuresPlaybackRate = !1, I.prototype.featuresProgressEvents = !1, I.prototype.featuresTimeupdateEvents = !1, I.prototype.featuresNativeTextTracks = !1, I.withSourceHandlers = function (t) {
            t.registerSourceHandler = function (e, n) {
                var i = t.sourceHandlers;
                i || (i = t.sourceHandlers = []), void 0 === n && (n = i.length), i.splice(n, 0, e)
            }, t.canPlayType = function (e) {
                for (var n = t.sourceHandlers || [], i = void 0, o = 0; o < n.length; o++)if (i = n[o].canPlayType(e))return i;
                return ""
            }, t.selectSourceHandler = function (e, n) {
                for (var i = t.sourceHandlers || [], o = void 0, r = 0; r < i.length; r++)if (o = i[r].canHandleSource(e, n))return i[r];
                return null
            }, t.canPlaySource = function (e, n) {
                var i = t.selectSourceHandler(e, n);
                return i ? i.canHandleSource(e, n) : ""
            };
            var e = ["seekable", "duration"];
            e.forEach(function (t) {
                var e = this[t];
                "function" == typeof e && (this[t] = function () {
                    return this.sourceHandler_ && this.sourceHandler_[t] ? this.sourceHandler_[t].apply(this.sourceHandler_, arguments) : e.apply(this, arguments)
                })
            }, t.prototype), t.prototype.setSource = function (e) {
                var n = t.selectSourceHandler(e, this.options_);
                return n || (t.nativeSourceHandler ? n = t.nativeSourceHandler : O["default"].error("No source hander found for the current source.")), this.disposeSourceHandler(), this.off("dispose", this.disposeSourceHandler), n !== t.nativeSourceHandler && (this.currentSource_ = e, this.off(this.el_, "loadstart", t.prototype.firstLoadStartListener_), this.off(this.el_, "loadstart", t.prototype.successiveLoadStartListener_), this.one(this.el_, "loadstart", t.prototype.firstLoadStartListener_)), this.sourceHandler_ = n.handleSource(e, this, this.options_), this.on("dispose", this.disposeSourceHandler), this
            }, t.prototype.firstLoadStartListener_ = function () {
                this.one(this.el_, "loadstart", t.prototype.successiveLoadStartListener_)
            }, t.prototype.successiveLoadStartListener_ = function () {
                this.disposeSourceHandler(), this.one(this.el_, "loadstart", t.prototype.successiveLoadStartListener_)
            }, t.prototype.disposeSourceHandler = function () {
                this.currentSource_ && (this.clearTracks(["audio", "video"]), this.currentSource_ = null), this.cleanupAutoTextTracks(), this.sourceHandler_ && (this.off(this.el_, "loadstart", t.prototype.firstLoadStartListener_), this.off(this.el_, "loadstart", t.prototype.successiveLoadStartListener_), this.sourceHandler_.dispose && this.sourceHandler_.dispose(), this.sourceHandler_ = null)
            }
        }, c["default"].registerComponent("Tech", I), c["default"].registerComponent("MediaTechController", I), I.registerTech("Tech", I), n["default"] = I
    }, {
        "../component": 70,
        "../media-error.js": 111,
        "../tracks/audio-track-list": 129,
        "../tracks/html-track-element": 132,
        "../tracks/html-track-element-list": 131,
        "../tracks/text-track": 138,
        "../tracks/text-track-list": 136,
        "../tracks/video-track-list": 142,
        "../utils/buffer.js": 145,
        "../utils/fn.js": 149,
        "../utils/log.js": 152,
        "../utils/merge-options.js": 153,
        "../utils/time-ranges.js": 156,
        "global/document": 9,
        "global/window": 10
    }],
    129: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./track-list"), u = o(l), c = t("../utils/browser.js"), h = i(c), f = t("global/document"), d = o(f), p = function (t, e) {
            for (var n = 0; n < t.length; n++)e.id !== t[n].id && (t[n].enabled = !1)
        }, y = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                r(this, e);
                for (var a = void 0, l = o.length - 1; l >= 0; l--)if (o[l].enabled) {
                    p(o, o[l]);
                    break
                }
                if (h.IS_IE8) {
                    a = d["default"].createElement("custom");
                    for (var c in u["default"].prototype)"constructor" !== c && (a[c] = u["default"].prototype[c]);
                    for (var f in e.prototype)"constructor" !== f && (a[f] = e.prototype[f])
                }
                return a = n = s(this, t.call(this, o, a)), a.changing_ = !1, i = a, s(n, i)
            }

            return a(e, t), e.prototype.addTrack_ = function (e) {
                var n = this;
                e.enabled && p(this, e), t.prototype.addTrack_.call(this, e), e.addEventListener && e.addEventListener("enabledchange", function () {
                    n.changing_ || (n.changing_ = !0, p(n, e), n.changing_ = !1, n.trigger("change"))
                })
            }, e.prototype.addTrack = function (t) {
                this.addTrack_(t)
            }, e.prototype.removeTrack = function (e) {
                t.prototype.removeTrack_.call(this, e)
            }, e
        }(u["default"]);
        n["default"] = y
    }, {"../utils/browser.js": 144, "./track-list": 140, "global/document": 9}],
    130: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./track-enums"), u = t("./track"), c = o(u), h = t("../utils/merge-options"), f = o(h), d = t("../utils/browser.js"), p = i(d), y = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                r(this, e);
                var a = (0, f["default"])(o, {kind: l.AudioTrackKind[o.kind] || ""}), u = n = s(this, t.call(this, a)), c = !1;
                if (p.IS_IE8)for (var h in e.prototype)"constructor" !== h && (u[h] = e.prototype[h]);
                return Object.defineProperty(u, "enabled", {
                    get: function () {
                        return c
                    }, set: function (t) {
                        "boolean" == typeof t && t !== c && (c = t, this.trigger("enabledchange"))
                    }
                }), a.enabled && (u.enabled = a.enabled), u.loaded_ = !0, i = u, s(n, i)
            }

            return a(e, t), e
        }(c["default"]);
        n["default"] = y
    }, {"../utils/browser.js": 144, "../utils/merge-options": 153, "./track": 141, "./track-enums": 139}],
    131: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        n.__esModule = !0;
        var s = t("../utils/browser.js"), a = o(s), l = t("global/document"), u = i(l), c = function () {
            function t() {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                r(this, t);
                var n = this;
                if (a.IS_IE8) {
                    n = u["default"].createElement("custom");
                    for (var i in t.prototype)"constructor" !== i && (n[i] = t.prototype[i])
                }
                n.trackElements_ = [], Object.defineProperty(n, "length", {
                    get: function () {
                        return this.trackElements_.length
                    }
                });
                for (var o = 0, s = e.length; o < s; o++)n.addTrackElement_(e[o]);
                if (a.IS_IE8)return n
            }

            return t.prototype.addTrackElement_ = function (t) {
                this.trackElements_.push(t)
            }, t.prototype.getTrackElementByTrack_ = function (t) {
                for (var e = void 0, n = 0, i = this.trackElements_.length; n < i; n++)if (t === this.trackElements_[n].track) {
                    e = this.trackElements_[n];
                    break
                }
                return e
            }, t.prototype.removeTrackElement_ = function (t) {
                for (var e = 0, n = this.trackElements_.length; e < n; e++)if (t === this.trackElements_[e]) {
                    this.trackElements_.splice(e, 1);
                    break
                }
            }, t
        }();
        n["default"] = c
    }, {"../utils/browser.js": 144, "global/document": 9}],
    132: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../utils/browser.js"), u = o(l), c = t("global/document"), h = i(c), f = t("../event-target"), d = i(f), p = t("../tracks/text-track"), y = i(p), v = 0, m = 1, g = 2, b = 3, _ = function (t) {
            function e() {
                var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                r(this, e);
                var i = s(this, t.call(this)), o = void 0, a = i;
                if (u.IS_IE8) {
                    a = h["default"].createElement("custom");
                    for (var l in e.prototype)"constructor" !== l && (a[l] = e.prototype[l])
                }
                var c = new y["default"](n);
                if (a.kind = c.kind, a.src = c.src, a.srclang = c.language, a.label = c.label, a["default"] = c["default"], Object.defineProperty(a, "readyState", {
                        get: function () {
                            return o
                        }
                    }), Object.defineProperty(a, "track", {
                        get: function () {
                            return c
                        }
                    }), o = v, c.addEventListener("loadeddata", function () {
                        o = g, a.trigger({type: "load", target: a})
                    }), u.IS_IE8) {
                    var f;
                    return f = a, s(i, f)
                }
                return i
            }

            return a(e, t), e
        }(d["default"]);
        _.prototype.allowedEvents_ = {load: "load"}, _.NONE = v, _.LOADING = m, _.LOADED = g, _.ERROR = b, n["default"] = _
    }, {"../event-target": 107, "../tracks/text-track": 138, "../utils/browser.js": 144, "global/document": 9}],
    133: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        n.__esModule = !0;
        var s = t("../utils/browser.js"), a = o(s), l = t("global/document"), u = i(l), c = function () {
            function t(e) {
                r(this, t);
                var n = this;
                if (a.IS_IE8) {
                    n = u["default"].createElement("custom");
                    for (var i in t.prototype)"constructor" !== i && (n[i] = t.prototype[i])
                }
                if (t.prototype.setCues_.call(n, e), Object.defineProperty(n, "length", {
                        get: function () {
                            return this.length_
                        }
                    }), a.IS_IE8)return n
            }

            return t.prototype.setCues_ = function (t) {
                var e = this.length || 0, n = 0, i = t.length;
                this.cues_ = t, this.length_ = t.length;
                var o = function (t) {
                    "" + t in this || Object.defineProperty(this, "" + t, {
                        get: function () {
                            return this.cues_[t]
                        }
                    })
                };
                if (e < i)for (n = e; n < i; n++)o.call(this, n)
            }, t.prototype.getCueById = function (t) {
                for (var e = null, n = 0, i = this.length; n < i; n++) {
                    var o = this[n];
                    if (o.id === t) {
                        e = o;
                        break
                    }
                }
                return e
            }, t
        }();
        n["default"] = c
    }, {"../utils/browser.js": 144, "global/document": 9}],
    134: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        function l(t, e) {
            return "rgba(" + parseInt(t[1] + t[1], 16) + "," + parseInt(t[2] + t[2], 16) + "," + parseInt(t[3] + t[3], 16) + "," + e + ")"
        }

        function u(t, e, n) {
            try {
                t.style[e] = n
            } catch (i) {
                return
            }
        }

        n.__esModule = !0;
        var c = t("../component"), h = o(c), f = t("../utils/fn.js"), d = i(f), p = t("global/window"), y = o(p), v = "#222", m = "#ccc", g = {
            monospace: "monospace",
            sansSerif: "sans-serif",
            serif: "serif",
            monospaceSansSerif: '"Andale Mono", "Lucida Console", monospace',
            monospaceSerif: '"Courier New", monospace',
            proportionalSansSerif: "sans-serif",
            proportionalSerif: "serif",
            casual: '"Comic Sans MS", Impact, fantasy',
            script: '"Monotype Corsiva", cursive',
            smallcaps: '"Andale Mono", "Lucida Console", monospace, sans-serif'
        }, b = function (t) {
            function e(n, i, o) {
                r(this, e);
                var a = s(this, t.call(this, n, i, o));
                return n.on("loadstart", d.bind(a, a.toggleDisplay)), n.on("texttrackchange", d.bind(a, a.updateDisplay)), n.ready(d.bind(a, function () {
                    if (n.tech_ && n.tech_.featuresNativeTextTracks)return void this.hide();
                    n.on("fullscreenchange", d.bind(this, this.updateDisplay));
                    for (var t = this.options_.playerOptions.tracks || [], e = 0; e < t.length; e++)this.player_.addRemoteTextTrack(t[e]);
                    var i = {captions: 1, subtitles: 1}, o = this.player_.textTracks(), r = void 0, s = void 0;
                    if (o) {
                        for (var a = 0; a < o.length; a++) {
                            var l = o[a];
                            l["default"] && ("descriptions" !== l.kind || r ? l.kind in i && !s && (s = l) : r = l)
                        }
                        s ? s.mode = "showing" : r && (r.mode = "showing")
                    }
                })), a
            }

            return a(e, t), e.prototype.toggleDisplay = function () {
                this.player_.tech_ && this.player_.tech_.featuresNativeTextTracks ? this.hide() : this.show()
            }, e.prototype.createEl = function () {
                return t.prototype.createEl.call(this, "div", {className: "vjs-text-track-display"}, {
                    "aria-live": "off",
                    "aria-atomic": "true"
                })
            }, e.prototype.clearDisplay = function () {
                "function" == typeof y["default"].WebVTT && y["default"].WebVTT.processCues(y["default"], [], this.el_)
            }, e.prototype.updateDisplay = function () {
                var t = this.player_.textTracks();
                if (this.clearDisplay(), t) {
                    for (var e = null, n = null, i = t.length; i--;) {
                        var o = t[i];
                        "showing" === o.mode && ("descriptions" === o.kind ? e = o : n = o)
                    }
                    n ? ("off" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "off"), this.updateForTrack(n)) : e && ("assertive" !== this.getAttribute("aria-live") && this.setAttribute("aria-live", "assertive"), this.updateForTrack(e))
                }
            }, e.prototype.updateForTrack = function (t) {
                if ("function" == typeof y["default"].WebVTT && t.activeCues) {
                    for (var e = this.player_.textTrackSettings.getValues(), n = [], i = 0; i < t.activeCues.length; i++)n.push(t.activeCues[i]);
                    y["default"].WebVTT.processCues(y["default"], n, this.el_);
                    for (var o = n.length; o--;) {
                        var r = n[o];
                        if (r) {
                            var s = r.displayState;
                            if (e.color && (s.firstChild.style.color = e.color), e.textOpacity && u(s.firstChild, "color", l(e.color || "#fff", e.textOpacity)), e.backgroundColor && (s.firstChild.style.backgroundColor = e.backgroundColor), e.backgroundOpacity && u(s.firstChild, "backgroundColor", l(e.backgroundColor || "#000", e.backgroundOpacity)), e.windowColor && (e.windowOpacity ? u(s, "backgroundColor", l(e.windowColor, e.windowOpacity)) : s.style.backgroundColor = e.windowColor), e.edgeStyle && ("dropshadow" === e.edgeStyle ? s.firstChild.style.textShadow = "2px 2px 3px " + v + ", 2px 2px 4px " + v + ", 2px 2px 5px " + v : "raised" === e.edgeStyle ? s.firstChild.style.textShadow = "1px 1px " + v + ", 2px 2px " + v + ", 3px 3px " + v : "depressed" === e.edgeStyle ? s.firstChild.style.textShadow = "1px 1px " + m + ", 0 1px " + m + ", -1px -1px " + v + ", 0 -1px " + v : "uniform" === e.edgeStyle && (s.firstChild.style.textShadow = "0 0 4px " + v + ", 0 0 4px " + v + ", 0 0 4px " + v + ", 0 0 4px " + v)), e.fontPercent && 1 !== e.fontPercent) {
                                var a = y["default"].parseFloat(s.style.fontSize);
                                s.style.fontSize = a * e.fontPercent + "px", s.style.height = "auto", s.style.top = "auto", s.style.bottom = "2px"
                            }
                            e.fontFamily && "default" !== e.fontFamily && ("small-caps" === e.fontFamily ? s.firstChild.style.fontVariant = "small-caps" : s.firstChild.style.fontFamily = g[e.fontFamily])
                        }
                    }
                }
            }, e
        }(h["default"]);
        h["default"].registerComponent("TextTrackDisplay", b), n["default"] = b
    }, {"../component": 70, "../utils/fn.js": 149, "global/window": 10}],
    135: [function (t, e, n) {
        "use strict";
        n.__esModule = !0;
        var i = function (t) {
            var e = ["kind", "label", "language", "id", "inBandMetadataTrackDispatchType", "mode", "src"].reduce(function (e, n, i) {
                return t[n] && (e[n] = t[n]), e
            }, {
                cues: t.cues && Array.prototype.map.call(t.cues, function (t) {
                    return {startTime: t.startTime, endTime: t.endTime, text: t.text, id: t.id}
                })
            });
            return e
        }, o = function (t) {
            var e = t.$$("track"), n = Array.prototype.map.call(e, function (t) {
                return t.track
            }), o = Array.prototype.map.call(e, function (t) {
                var e = i(t.track);
                return t.src && (e.src = t.src), e
            });
            return o.concat(Array.prototype.filter.call(t.textTracks(), function (t) {
                return n.indexOf(t) === -1
            }).map(i))
        }, r = function (t, e) {
            return t.forEach(function (t) {
                var n = e.addRemoteTextTrack(t).track;
                !t.src && t.cues && t.cues.forEach(function (t) {
                    return n.addCue(t)
                })
            }), e.textTracks()
        };
        n["default"] = {textTracksToJson: o, jsonToTextTracks: r, trackToJson_: i}
    }, {}],
    136: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./track-list"), u = o(l), c = t("../utils/fn.js"), h = i(c), f = t("../utils/browser.js"), d = i(f), p = t("global/document"), y = o(p), v = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                r(this, e);
                var a = void 0;
                if (d.IS_IE8) {
                    a = y["default"].createElement("custom");
                    for (var l in u["default"].prototype)"constructor" !== l && (a[l] = u["default"].prototype[l]);
                    for (var c in e.prototype)"constructor" !== c && (a[c] = e.prototype[c])
                }
                return a = n = s(this, t.call(this, o, a)), i = a, s(n, i)
            }

            return a(e, t), e.prototype.addTrack_ = function (e) {
                t.prototype.addTrack_.call(this, e), e.addEventListener("modechange", h.bind(this, function () {
                    this.trigger("change")
                }))
            }, e.prototype.removeTrack_ = function (t) {
                for (var e = void 0, n = 0, i = this.length; n < i; n++)if (this[n] === t) {
                    e = this[n], e.off && e.off(), this.tracks_.splice(n, 1);
                    break
                }
                e && this.trigger({track: e, type: "removetrack"})
            }, e.prototype.getTrackById = function (t) {
                for (var e = null, n = 0, i = this.length; n < i; n++) {
                    var o = this[n];
                    if (o.id === t) {
                        e = o;
                        break
                    }
                }
                return e
            }, e
        }(u["default"]);
        n["default"] = v
    }, {"../utils/browser.js": 144, "../utils/fn.js": 149, "./track-list": 140, "global/document": 9}],
    137: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        function l(t, e) {
            if (e && (t = e(t)), t && "none" !== t)return t
        }

        function u(t, e) {
            var n = t.options[t.options.selectedIndex].value;
            return l(n, e)
        }

        function c(t, e, n) {
            if (e)for (var i = 0; i < t.options.length; i++)if (l(t.options[i].value, n) === e) {
                t.selectedIndex = i;
                break
            }
        }

        n.__esModule = !0;
        var h = t("global/window"), f = o(h), d = t("../component"), p = o(d), y = t("../utils/dom"), v = t("../utils/fn"), m = i(v), g = t("../utils/obj"), b = i(g), _ = t("../utils/log"), w = o(_), k = "vjs-text-track-settings", C = ["#000", "Black"], j = ["#00F", "Blue"], T = ["#0FF", "Cyan"], S = ["#0F0", "Green"], x = ["#F0F", "Magenta"], O = ["#F00", "Red"], E = ["#FFF", "White"], P = ["#FF0", "Yellow"], M = ["1", "Opaque"], A = ["0.5", "Semi-Transparent"], L = ["0", "Transparent"], D = {
            backgroundColor: {
                selector: ".vjs-bg-color > select",
                id: "captions-background-color-%s",
                label: "Color",
                options: [C, E, O, S, j, P, x, T]
            },
            backgroundOpacity: {
                selector: ".vjs-bg-opacity > select",
                id: "captions-background-opacity-%s",
                label: "Transparency",
                options: [M, A, L]
            },
            color: {
                selector: ".vjs-fg-color > select",
                id: "captions-foreground-color-%s",
                label: "Color",
                options: [E, C, O, S, j, P, x, T]
            },
            edgeStyle: {
                selector: ".vjs-edge-style > select",
                id: "%s",
                label: "Text Edge Style",
                options: [["none", "None"], ["raised", "Raised"], ["depressed", "Depressed"], ["uniform", "Uniform"], ["dropshadow", "Dropshadow"]]
            },
            fontFamily: {
                selector: ".vjs-font-family > select",
                id: "captions-font-family-%s",
                label: "Font Family",
                options: [["proportionalSansSerif", "Proportional Sans-Serif"], ["monospaceSansSerif", "Monospace Sans-Serif"], ["proportionalSerif", "Proportional Serif"], ["monospaceSerif", "Monospace Serif"], ["casual", "Casual"], ["script", "Script"], ["small-caps", "Small Caps"]]
            },
            fontPercent: {
                selector: ".vjs-font-percent > select",
                id: "captions-font-size-%s",
                label: "Font Size",
                options: [["0.50", "50%"], ["0.75", "75%"], ["1.00", "100%"], ["1.25", "125%"], ["1.50", "150%"], ["1.75", "175%"], ["2.00", "200%"], ["3.00", "300%"], ["4.00", "400%"]],
                "default": 2,
                parser: function (t) {
                    return "1.00" === t ? null : Number(t)
                }
            },
            textOpacity: {
                selector: ".vjs-text-opacity > select",
                id: "captions-foreground-opacity-%s",
                label: "Transparency",
                options: [M, A]
            },
            windowColor: {selector: ".vjs-window-color > select", id: "captions-window-color-%s", label: "Color"},
            windowOpacity: {
                selector: ".vjs-window-opacity > select",
                id: "captions-window-opacity-%s",
                label: "Transparency",
                options: [L, A, M]
            }
        };
        D.windowColor.options = D.backgroundColor.options;
        var F = function (t) {
            function e(n, i) {
                r(this, e);
                var o = s(this, t.call(this, n, i));
                return o.setDefaults(), o.hide(), o.updateDisplay = m.bind(o, o.updateDisplay), void 0 === i.persistTextTrackSettings && (o.options_.persistTextTrackSettings = o.options_.playerOptions.persistTextTrackSettings), o.on(o.$(".vjs-done-button"), "click", function () {
                    o.saveSettings(), o.hide()
                }), o.on(o.$(".vjs-default-button"), "click", function () {
                    o.setDefaults(), o.updateDisplay()
                }), b.each(D, function (t) {
                    o.on(o.$(t.selector), "change", o.updateDisplay)
                }), o.options_.persistTextTrackSettings && o.restoreSettings(), o
            }

            return a(e, t), e.prototype.createElSelect_ = function (t) {
                var e = this, n = D[t], i = n.id.replace("%s", this.id_);
                return [(0, y.createEl)("label", {
                    className: "vjs-label",
                    textContent: n.label
                }, {"for": i}), (0, y.createEl)("select", {id: i}, void 0, n.options.map(function (t) {
                    return (0, y.createEl)("option", {textContent: e.localize(t[1]), value: t[0]})
                }))]
            }, e.prototype.createElFgColor_ = function () {
                var t = (0, y.createEl)("legend", {textContent: this.localize("Text")}), e = this.createElSelect_("color"), n = (0, y.createEl)("span", {className: "vjs-text-opacity vjs-opacity"}, void 0, this.createElSelect_("textOpacity"));
                return (0, y.createEl)("fieldset", {className: "vjs-fg-color vjs-tracksetting"}, void 0, [t].concat(e, n))
            }, e.prototype.createElBgColor_ = function () {
                var t = (0, y.createEl)("legend", {textContent: this.localize("Background")}), e = this.createElSelect_("backgroundColor"), n = (0, y.createEl)("span", {className: "vjs-bg-opacity vjs-opacity"}, void 0, this.createElSelect_("backgroundOpacity"));
                return (0, y.createEl)("fieldset", {className: "vjs-bg-color vjs-tracksetting"}, void 0, [t].concat(e, n))
            }, e.prototype.createElWinColor_ = function () {
                var t = (0, y.createEl)("legend", {textContent: this.localize("Window")}), e = this.createElSelect_("windowColor"), n = (0, y.createEl)("span", {className: "vjs-window-opacity vjs-opacity"}, void 0, this.createElSelect_("windowOpacity"));
                return (0, y.createEl)("fieldset", {className: "vjs-window-color vjs-tracksetting"}, void 0, [t].concat(e, n))
            }, e.prototype.createElColors_ = function () {
                return (0, y.createEl)("div", {className: "vjs-tracksettings-colors"}, void 0, [this.createElFgColor_(), this.createElBgColor_(), this.createElWinColor_()])
            }, e.prototype.createElFont_ = function () {
                var t = (0, y.createEl)("div", {className: "vjs-font-percent vjs-tracksetting"}, void 0, this.createElSelect_("fontPercent")), e = (0, y.createEl)("div", {className: "vjs-edge-style vjs-tracksetting"}, void 0, this.createElSelect_("edgeStyle")), n = (0, y.createEl)("div", {className: "vjs-font-family vjs-tracksetting"}, void 0, this.createElSelect_("fontFamily"));
                return (0, y.createEl)("div", {className: "vjs-tracksettings-font"}, void 0, [t, e, n])
            }, e.prototype.createElControls_ = function () {
                var t = (0, y.createEl)("button", {
                    className: "vjs-default-button",
                    textContent: this.localize("Defaults")
                }), e = (0, y.createEl)("button", {className: "vjs-done-button", textContent: "Done"});
                return (0, y.createEl)("div", {className: "vjs-tracksettings-controls"}, void 0, [t, e])
            }, e.prototype.createEl = function () {
                var t = (0, y.createEl)("div", {className: "vjs-tracksettings"}, void 0, [this.createElColors_(), this.createElFont_(), this.createElControls_()]), e = (0, y.createEl)("div", {
                    className: "vjs-control-text",
                    id: "TTsettingsDialogLabel-" + this.id_,
                    textContent: "Caption Settings Dialog"
                }, {"aria-level": "1", role: "heading"}), n = (0, y.createEl)("div", {
                    className: "vjs-control-text",
                    id: "TTsettingsDialogDescription-" + this.id_,
                    textContent: "Beginning of dialog window. Escape will cancel and close the window."
                }), i = (0, y.createEl)("div", void 0, {role: "document"}, [e, n, t]);
                return (0, y.createEl)("div", {
                    className: "vjs-caption-settings vjs-modal-overlay",
                    tabIndex: -1
                }, {role: "dialog", "aria-labelledby": e.id, "aria-describedby": n.id}, i)
            }, e.prototype.getValues = function () {
                var t = this;
                return b.reduce(D, function (e, n, i) {
                    var o = u(t.$(n.selector), n.parser);
                    return void 0 !== o && (e[i] = o), e
                }, {})
            }, e.prototype.setValues = function (t) {
                var e = this;
                b.each(D, function (n, i) {
                    c(e.$(n.selector), t[i], n.parser)
                })
            }, e.prototype.setDefaults = function () {
                var t = this;
                b.each(D, function (e) {
                    var n = e.hasOwnProperty("default") ? e["default"] : 0;
                    t.$(e.selector).selectedIndex = n
                })
            }, e.prototype.restoreSettings = function () {
                var t = void 0;
                try {
                    t = JSON.parse(f["default"].localStorage.getItem(k))
                } catch (e) {
                    w["default"].warn(e)
                }
                t && this.setValues(t)
            }, e.prototype.saveSettings = function () {
                if (this.options_.persistTextTrackSettings) {
                    var t = this.getValues();
                    try {
                        Object.keys(t).length ? f["default"].localStorage.setItem(k, JSON.stringify(t)) : f["default"].localStorage.removeItem(k)
                    } catch (e) {
                        w["default"].warn(e)
                    }
                }
            }, e.prototype.updateDisplay = function () {
                var t = this.player_.getChild("textTrackDisplay");
                t && t.updateDisplay()
            }, e
        }(p["default"]);
        p["default"].registerComponent("TextTrackSettings", F), n["default"] = F
    }, {
        "../component": 70,
        "../utils/dom": 147,
        "../utils/fn": 149,
        "../utils/log": 152,
        "../utils/obj": 154,
        "global/window": 10
    }],
    138: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./text-track-cue-list"), u = o(l), c = t("../utils/fn.js"), h = i(c), f = t("./track-enums"), d = t("../utils/log.js"), p = o(d), y = t("global/window"), v = o(y), m = t("./track.js"), g = o(m), b = t("../utils/url.js"), _ = t("xhr"), w = o(_), k = t("../utils/merge-options"), C = o(k), j = t("../utils/browser.js"), T = i(j), S = function (t, e) {
            var n = new v["default"].WebVTT.Parser(v["default"], v["default"].vttjs, v["default"].WebVTT.StringDecoder()), i = [];
            n.oncue = function (t) {
                e.addCue(t)
            }, n.onparsingerror = function (t) {
                i.push(t)
            }, n.onflush = function () {
                e.trigger({type: "loadeddata", target: e})
            }, n.parse(t), i.length > 0 && (v["default"].console && v["default"].console.groupCollapsed && v["default"].console.groupCollapsed("Text Track parsing errors for " + e.src), i.forEach(function (t) {
                return p["default"].error(t)
            }), v["default"].console && v["default"].console.groupEnd && v["default"].console.groupEnd()), n.flush()
        }, x = function (t, e) {
            var n = {uri: t}, i = (0, b.isCrossOrigin)(t);
            i && (n.cors = i), (0, w["default"])(n, h.bind(this, function (t, n, i) {
                return t ? p["default"].error(t, n) : (e.loaded_ = !0, void("function" != typeof v["default"].WebVTT ? e.tech_ && !function () {
                            var t = function () {
                                return S(i, e)
                            };
                            e.tech_.on("vttjsloaded", t), e.tech_.on("vttjserror", function () {
                                p["default"].error("vttjs failed to load, stopping trying to process " + e.src), e.tech_.off("vttjsloaded", t)
                            })
                        }() : S(i, e)))
            }))
        }, O = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                if (r(this, e), !o.tech)throw new Error("A tech was not provided.");
                var a = (0, C["default"])(o, {
                    kind: f.TextTrackKind[o.kind] || "subtitles",
                    language: o.language || o.srclang || ""
                }), l = f.TextTrackMode[a.mode] || "disabled", c = a["default"];
                "metadata" !== a.kind && "chapters" !== a.kind || (l = "hidden");
                var d = n = s(this, t.call(this, a));
                if (d.tech_ = a.tech, T.IS_IE8)for (var p in e.prototype)"constructor" !== p && (d[p] = e.prototype[p]);
                d.cues_ = [], d.activeCues_ = [];
                var y = new u["default"](d.cues_), v = new u["default"](d.activeCues_), m = !1, g = h.bind(d, function () {
                    this.activeCues, m && (this.trigger("cuechange"), m = !1)
                });
                return "disabled" !== l && d.tech_.on("timeupdate", g), Object.defineProperty(d, "default", {
                    get: function () {
                        return c
                    }, set: function () {
                    }
                }), Object.defineProperty(d, "mode", {
                    get: function () {
                        return l
                    }, set: function (t) {
                        f.TextTrackMode[t] && (l = t, "showing" === l && this.tech_.on("timeupdate", g), this.trigger("modechange"))
                    }
                }), Object.defineProperty(d, "cues", {
                    get: function () {
                        return this.loaded_ ? y : null
                    }, set: function () {
                    }
                }), Object.defineProperty(d, "activeCues", {
                    get: function () {
                        if (!this.loaded_)return null;
                        if (0 === this.cues.length)return v;
                        for (var t = this.tech_.currentTime(), e = [], n = 0, i = this.cues.length; n < i; n++) {
                            var o = this.cues[n];
                            o.startTime <= t && o.endTime >= t ? e.push(o) : o.startTime === o.endTime && o.startTime <= t && o.startTime + .5 >= t && e.push(o)
                        }
                        if (m = !1, e.length !== this.activeCues_.length) m = !0; else for (var r = 0; r < e.length; r++)this.activeCues_.indexOf(e[r]) === -1 && (m = !0);
                        return this.activeCues_ = e, v.setCues_(this.activeCues_), v
                    }, set: function () {
                    }
                }), a.src ? (d.src = a.src, x(a.src, d)) : d.loaded_ = !0, i = d, s(n, i)
            }

            return a(e, t), e.prototype.addCue = function (t) {
                var e = this.tech_.textTracks();
                if (e)for (var n = 0; n < e.length; n++)e[n] !== this && e[n].removeCue(t);
                this.cues_.push(t), this.cues.setCues_(this.cues_)
            }, e.prototype.removeCue = function (t) {
                for (var e = !1, n = 0, i = this.cues_.length; n < i; n++) {
                    var o = this.cues_[n];
                    o === t && (this.cues_.splice(n, 1), e = !0)
                }
                e && this.cues.setCues_(this.cues_)
            }, e
        }(g["default"]);
        O.prototype.allowedEvents_ = {cuechange: "cuechange"}, n["default"] = O
    }, {
        "../utils/browser.js": 144,
        "../utils/fn.js": 149,
        "../utils/log.js": 152,
        "../utils/merge-options": 153,
        "../utils/url.js": 158,
        "./text-track-cue-list": 133,
        "./track-enums": 139,
        "./track.js": 141,
        "global/window": 10,
        xhr: 164
    }],
    139: [function (t, e, n) {
        "use strict";
        n.__esModule = !0;
        n.VideoTrackKind = {
            alternative: "alternative",
            captions: "captions",
            main: "main",
            sign: "sign",
            subtitles: "subtitles",
            commentary: "commentary"
        }, n.AudioTrackKind = {
            alternative: "alternative",
            descriptions: "descriptions",
            main: "main",
            "main-desc": "main-desc",
            translation: "translation",
            commentary: "commentary"
        }, n.TextTrackKind = {
            subtitles: "subtitles",
            captions: "captions",
            descriptions: "descriptions",
            chapters: "chapters",
            metadata: "metadata"
        }, n.TextTrackMode = {disabled: "disabled", hidden: "hidden", showing: "showing"}
    }, {}],
    140: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../event-target"), u = o(l), c = t("../utils/browser.js"), h = i(c), f = t("global/document"), d = o(f), p = function (t) {
            function e() {
                var n, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
                r(this, e);
                var a = s(this, t.call(this));
                if (!o && (o = a, h.IS_IE8)) {
                    o = d["default"].createElement("custom");
                    for (var l in e.prototype)"constructor" !== l && (o[l] = e.prototype[l])
                }
                o.tracks_ = [], Object.defineProperty(o, "length", {
                    get: function () {
                        return this.tracks_.length
                    }
                });
                for (var u = 0; u < i.length; u++)o.addTrack_(i[u]);
                return n = o, s(a, n)
            }

            return a(e, t), e.prototype.addTrack_ = function (t) {
                var e = this.tracks_.length;
                "" + e in this || Object.defineProperty(this, e, {
                    get: function () {
                        return this.tracks_[e]
                    }
                }), this.tracks_.indexOf(t) === -1 && (this.tracks_.push(t), this.trigger({track: t, type: "addtrack"}))
            }, e.prototype.removeTrack_ = function (t) {
                for (var e = void 0, n = 0, i = this.length; n < i; n++)if (this[n] === t) {
                    e = this[n], e.off && e.off(), this.tracks_.splice(n, 1);
                    break
                }
                e && this.trigger({track: e, type: "removetrack"})
            }, e.prototype.getTrackById = function (t) {
                for (var e = null, n = 0, i = this.length; n < i; n++) {
                    var o = this[n];
                    if (o.id === t) {
                        e = o;
                        break
                    }
                }
                return e
            }, e
        }(u["default"]);
        p.prototype.allowedEvents_ = {change: "change", addtrack: "addtrack", removetrack: "removetrack"};
        for (var y in p.prototype.allowedEvents_)p.prototype["on" + y] = null;
        n["default"] = p
    }, {"../event-target": 107, "../utils/browser.js": 144, "global/document": 9}],
    141: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("../utils/browser.js"), u = o(l), c = t("global/document"), h = i(c), f = t("../utils/guid.js"), d = o(f), p = t("../event-target"), y = i(p), v = function (t) {
            function e() {
                var n, i = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                r(this, e);
                var o = s(this, t.call(this)), a = o;
                if (u.IS_IE8) {
                    a = h["default"].createElement("custom");
                    for (var l in e.prototype)"constructor" !== l && (a[l] = e.prototype[l])
                }
                var c = {
                    id: i.id || "vjs_track_" + d.newGUID(),
                    kind: i.kind || "",
                    label: i.label || "",
                    language: i.language || ""
                }, f = function (t) {
                    Object.defineProperty(a, t, {
                        get: function () {
                            return c[t]
                        }, set: function () {
                        }
                    })
                };
                for (var p in c)f(p);
                return n = a, s(o, n)
            }

            return a(e, t), e
        }(y["default"]);
        n["default"] = v
    }, {"../event-target": 107, "../utils/browser.js": 144, "../utils/guid.js": 151, "global/document": 9}],
    142: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./track-list"), u = o(l), c = t("../utils/browser.js"), h = i(c), f = t("global/document"), d = o(f), p = function (t, e) {
            for (var n = 0; n < t.length; n++)e.id !== t[n].id && (t[n].selected = !1)
        }, y = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];
                r(this, e);
                for (var a = void 0, l = o.length - 1; l >= 0; l--)if (o[l].selected) {
                    p(o, o[l]);
                    break
                }
                if (h.IS_IE8) {
                    a = d["default"].createElement("custom");
                    for (var c in u["default"].prototype)"constructor" !== c && (a[c] = u["default"].prototype[c]);
                    for (var f in e.prototype)"constructor" !== f && (a[f] = e.prototype[f])
                }
                return a = n = s(this, t.call(this, o, a)), a.changing_ = !1, Object.defineProperty(a, "selectedIndex", {
                    get: function () {
                        for (var t = 0; t < this.length; t++)if (this[t].selected)return t;
                        return -1
                    }, set: function () {
                    }
                }), i = a, s(n, i)
            }

            return a(e, t), e.prototype.addTrack_ = function (e) {
                var n = this;
                e.selected && p(this, e), t.prototype.addTrack_.call(this, e), e.addEventListener && e.addEventListener("selectedchange", function () {
                    n.changing_ || (n.changing_ = !0, p(n, e), n.changing_ = !1, n.trigger("change"))
                })
            }, e.prototype.addTrack = function (t) {
                this.addTrack_(t)
            }, e.prototype.removeTrack = function (e) {
                t.prototype.removeTrack_.call(this, e)
            }, e
        }(u["default"]);
        n["default"] = y
    }, {"../utils/browser.js": 144, "./track-list": 140, "global/document": 9}],
    143: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        function s(t, e) {
            if (!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !e || "object" != typeof e && "function" != typeof e ? t : e
        }

        function a(t, e) {
            if ("function" != typeof e && null !== e)throw new TypeError("Super expression must either be null or a function, not " + typeof e);
            t.prototype = Object.create(e && e.prototype, {
                constructor: {
                    value: t,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
        }

        n.__esModule = !0;
        var l = t("./track-enums"), u = t("./track"), c = o(u), h = t("../utils/merge-options"), f = o(h), d = t("../utils/browser.js"), p = i(d), y = function (t) {
            function e() {
                var n, i, o = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                r(this, e);
                var a = (0, f["default"])(o, {kind: l.VideoTrackKind[o.kind] || ""}), u = n = s(this, t.call(this, a)), c = !1;
                if (p.IS_IE8)for (var h in e.prototype)"constructor" !== h && (u[h] = e.prototype[h]);
                return Object.defineProperty(u, "selected", {
                    get: function () {
                        return c
                    }, set: function (t) {
                        "boolean" == typeof t && t !== c && (c = t, this.trigger("selectedchange"))
                    }
                }), a.selected && (u.selected = a.selected), i = u, s(n, i)
            }

            return a(e, t), e
        }(c["default"]);
        n["default"] = y
    }, {"../utils/browser.js": 144, "../utils/merge-options": 153, "./track": 141, "./track-enums": 139}],
    144: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0, n.BACKGROUND_SIZE_SUPPORTED = n.TOUCH_ENABLED = n.IE_VERSION = n.IS_IE8 = n.IS_CHROME = n.IS_EDGE = n.IS_FIREFOX = n.IS_NATIVE_ANDROID = n.IS_OLD_ANDROID = n.ANDROID_VERSION = n.IS_ANDROID = n.IOS_VERSION = n.IS_IOS = n.IS_IPOD = n.IS_IPHONE = n.IS_IPAD = void 0;
        var o = t("global/document"), r = i(o), s = t("global/window"), a = i(s), l = a["default"].navigator && a["default"].navigator.userAgent || "", u = /AppleWebKit\/([\d.]+)/i.exec(l), c = u ? parseFloat(u.pop()) : null, h = n.IS_IPAD = /iPad/i.test(l), f = n.IS_IPHONE = /iPhone/i.test(l) && !h, d = n.IS_IPOD = /iPod/i.test(l), p = (n.IS_IOS = f || h || d, n.IOS_VERSION = function () {
            var t = l.match(/OS (\d+)_/i);
            return t && t[1] ? t[1] : null
        }(), n.IS_ANDROID = /Android/i.test(l)), y = n.ANDROID_VERSION = function () {
            var t = l.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);
            if (!t)return null;
            var e = t[1] && parseFloat(t[1]), n = t[2] && parseFloat(t[2]);
            return e && n ? parseFloat(t[1] + "." + t[2]) : e ? e : null
        }(), v = (n.IS_OLD_ANDROID = p && /webkit/i.test(l) && y < 2.3, n.IS_NATIVE_ANDROID = p && y < 5 && c < 537, n.IS_FIREFOX = /Firefox/i.test(l), n.IS_EDGE = /Edge/i.test(l));
        n.IS_CHROME = !v && /Chrome/i.test(l), n.IS_IE8 = /MSIE\s8\.0/.test(l), n.IE_VERSION = function (t) {
            return t && parseFloat(t[1])
        }(/MSIE\s(\d+)\.\d/.exec(l)), n.TOUCH_ENABLED = !!("ontouchstart" in a["default"] || a["default"].DocumentTouch && r["default"] instanceof a["default"].DocumentTouch), n.BACKGROUND_SIZE_SUPPORTED = "backgroundSize" in r["default"].createElement("video").style
    }, {"global/document": 9, "global/window": 10}],
    145: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            var n = 0, i = void 0, r = void 0;
            if (!e)return 0;
            t && t.length || (t = (0, o.createTimeRange)(0, 0));
            for (var s = 0; s < t.length; s++)i = t.start(s), r = t.end(s), r > e && (r = e), n += r - i;
            return n / e
        }

        n.__esModule = !0, n.bufferedPercent = i;
        var o = t("./time-ranges.js")
    }, {"./time-ranges.js": 156}],
    146: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!t || !e)return "";
            if ("function" == typeof s["default"].getComputedStyle) {
                var n = s["default"].getComputedStyle(t);
                return n ? n[e] : ""
            }
            return t.currentStyle[e] || ""
        }

        n.__esModule = !0, n["default"] = o;
        var r = t("global/window"), s = i(r)
    }, {"global/window": 10}],
    147: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e) {
            return t.raw = e, t
        }

        function s(t) {
            return "string" == typeof t && /\S/.test(t)
        }

        function a(t) {
            if (/\s/.test(t))throw new Error("class has illegal whitespace characters")
        }

        function l(t) {
            return new RegExp("(^|\\s)" + t + "($|\\s)")
        }

        function u(t) {
            return !!t && "object" === ("undefined" == typeof t ? "undefined" : R(t)) && 1 === t.nodeType
        }

        function c(t) {
            return function (e, n) {
                if (!s(e))return $["default"][t](null);
                s(n) && (n = $["default"].querySelector(n));
                var i = u(n) ? n : $["default"];
                return i[t] && i[t](e)
            }
        }

        function h(t) {
            return 0 === t.indexOf("#") && (t = t.slice(1)), $["default"].getElementById(t)
        }

        function f() {
            var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "div", e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, i = arguments[3], o = $["default"].createElement(t);
            return Object.getOwnPropertyNames(e).forEach(function (t) {
                var n = e[t];
                t.indexOf("aria-") !== -1 || "role" === t || "type" === t ? (z["default"].warn((0, G["default"])(I, t, n)), o.setAttribute(t, n)) : "textContent" === t ? d(o, n) : o[t] = n
            }), Object.getOwnPropertyNames(n).forEach(function (t) {
                o.setAttribute(t, n[t])
            }), i && D(o, i), o
        }

        function d(t, e) {
            return "undefined" == typeof t.textContent ? t.innerText = e : t.textContent = e, t
        }

        function p(t, e) {
            e.firstChild ? e.insertBefore(t, e.firstChild) : e.appendChild(t)
        }

        function y(t) {
            var e = t[X];
            return e || (e = t[X] = V.newGUID()), q[e] || (q[e] = {}), q[e]
        }

        function v(t) {
            var e = t[X];
            return !!e && !!Object.getOwnPropertyNames(q[e]).length
        }

        function m(t) {
            var e = t[X];
            if (e) {
                delete q[e];
                try {
                    delete t[X]
                } catch (n) {
                    t.removeAttribute ? t.removeAttribute(X) : t[X] = null
                }
            }
        }

        function g(t, e) {
            return a(e), t.classList ? t.classList.contains(e) : l(e).test(t.className)
        }

        function b(t, e) {
            return t.classList ? t.classList.add(e) : g(t, e) || (t.className = (t.className + " " + e).trim()), t
        }

        function _(t, e) {
            return t.classList ? t.classList.remove(e) : (a(e), t.className = t.className.split(/\s+/).filter(function (t) {
                    return t !== e
                }).join(" ")), t
        }

        function w(t, e, n) {
            var i = g(t, e);
            if ("function" == typeof n && (n = n(t, e)), "boolean" != typeof n && (n = !i), n !== i)return n ? b(t, e) : _(t, e), t
        }

        function k(t, e) {
            Object.getOwnPropertyNames(e).forEach(function (n) {
                var i = e[n];
                null === i || "undefined" == typeof i || i === !1 ? t.removeAttribute(n) : t.setAttribute(n, i === !0 ? "" : i)
            })
        }

        function C(t) {
            var e = {}, n = ",autoplay,controls,loop,muted,default,";
            if (t && t.attributes && t.attributes.length > 0)for (var i = t.attributes, o = i.length - 1; o >= 0; o--) {
                var r = i[o].name, s = i[o].value;
                "boolean" != typeof t[r] && n.indexOf("," + r + ",") === -1 || (s = null !== s), e[r] = s
            }
            return e
        }

        function j(t, e) {
            return t.getAttribute(e)
        }

        function T(t, e, n) {
            t.setAttribute(e, n)
        }

        function S(t, e) {
            t.removeAttribute(e)
        }

        function x() {
            $["default"].body.focus(), $["default"].onselectstart = function () {
                return !1
            }
        }

        function O() {
            $["default"].onselectstart = function () {
                return !0
            }
        }

        function E(t) {
            var e = void 0;
            if (t.getBoundingClientRect && t.parentNode && (e = t.getBoundingClientRect()), !e)return {left: 0, top: 0};
            var n = $["default"].documentElement, i = $["default"].body, o = n.clientLeft || i.clientLeft || 0, r = W["default"].pageXOffset || i.scrollLeft, s = e.left + r - o, a = n.clientTop || i.clientTop || 0, l = W["default"].pageYOffset || i.scrollTop, u = e.top + l - a;
            return {left: Math.round(s), top: Math.round(u)}
        }

        function P(t, e) {
            var n = {}, i = E(t), o = t.offsetWidth, r = t.offsetHeight, s = i.top, a = i.left, l = e.pageY, u = e.pageX;
            return e.changedTouches && (u = e.changedTouches[0].pageX, l = e.changedTouches[0].pageY), n.y = Math.max(0, Math.min(1, (s - l + r) / r)), n.x = Math.max(0, Math.min(1, (u - a) / o)), n
        }

        function M(t) {
            return !!t && "object" === ("undefined" == typeof t ? "undefined" : R(t)) && 3 === t.nodeType
        }

        function A(t) {
            for (; t.firstChild;)t.removeChild(t.firstChild);
            return t
        }

        function L(t) {
            return "function" == typeof t && (t = t()), (Array.isArray(t) ? t : [t]).map(function (t) {
                return "function" == typeof t && (t = t()), u(t) || M(t) ? t : "string" == typeof t && /\S/.test(t) ? $["default"].createTextNode(t) : void 0
            }).filter(function (t) {
                return t
            })
        }

        function D(t, e) {
            return L(e).forEach(function (e) {
                return t.appendChild(e)
            }), t
        }

        function F(t, e) {
            return D(A(t), e)
        }

        n.__esModule = !0, n.$$ = n.$ = void 0;
        var R = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, I = r(["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set ", " to ", "."], ["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set ", " to ", "."]);
        n.isEl = u, n.getEl = h, n.createEl = f, n.textContent = d, n.insertElFirst = p, n.getElData = y, n.hasElData = v, n.removeElData = m, n.hasElClass = g, n.addElClass = b, n.removeElClass = _, n.toggleElClass = w, n.setElAttributes = k, n.getElAttributes = C, n.getAttribute = j, n.setAttribute = T, n.removeAttribute = S, n.blockTextSelection = x, n.unblockTextSelection = O, n.findElPosition = E, n.getPointerPosition = P, n.isTextNode = M, n.emptyEl = A, n.normalizeContent = L, n.appendContent = D, n.insertContent = F;
        var N = t("global/document"), $ = o(N), B = t("global/window"), W = o(B), H = t("./guid.js"), V = i(H), Y = t("./log.js"), z = o(Y), U = t("tsml"), G = o(U), q = {}, X = "vdata" + (new Date).getTime();
        n.$ = c("querySelector"), n.$$ = c("querySelectorAll")
    }, {"./guid.js": 151, "./log.js": 152, "global/document": 9, "global/window": 10, tsml: 65}],
    148: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function r(t, e) {
            var n = d.getElData(t);
            0 === n.handlers[e].length && (delete n.handlers[e], t.removeEventListener ? t.removeEventListener(e, n.dispatcher, !1) : t.detachEvent && t.detachEvent("on" + e, n.dispatcher)), Object.getOwnPropertyNames(n.handlers).length <= 0 && (delete n.handlers, delete n.dispatcher, delete n.disabled), 0 === Object.getOwnPropertyNames(n).length && d.removeElData(t)
        }

        function s(t, e, n, i) {
            n.forEach(function (n) {
                t(e, n, i)
            })
        }

        function a(t) {
            function e() {
                return !0
            }

            function n() {
                return !1
            }

            return t && t.isPropagationStopped || !function () {
                var i = t || b["default"].event;
                t = {};
                for (var o in i)"layerX" !== o && "layerY" !== o && "keyLocation" !== o && "webkitMovementX" !== o && "webkitMovementY" !== o && ("returnValue" === o && i.preventDefault || (t[o] = i[o]));
                if (t.target || (t.target = t.srcElement || w["default"]), t.relatedTarget || (t.relatedTarget = t.fromElement === t.target ? t.toElement : t.fromElement), t.preventDefault = function () {
                        i.preventDefault && i.preventDefault(), t.returnValue = !1, i.returnValue = !1, t.defaultPrevented = !0
                    }, t.defaultPrevented = !1, t.stopPropagation = function () {
                        i.stopPropagation && i.stopPropagation(), t.cancelBubble = !0, i.cancelBubble = !0, t.isPropagationStopped = e
                    }, t.isPropagationStopped = n, t.stopImmediatePropagation = function () {
                        i.stopImmediatePropagation && i.stopImmediatePropagation(), t.isImmediatePropagationStopped = e, t.stopPropagation()
                    }, t.isImmediatePropagationStopped = n, null !== t.clientX && void 0 !== t.clientX) {
                    var r = w["default"].documentElement, s = w["default"].body;
                    t.pageX = t.clientX + (r && r.scrollLeft || s && s.scrollLeft || 0) - (r && r.clientLeft || s && s.clientLeft || 0), t.pageY = t.clientY + (r && r.scrollTop || s && s.scrollTop || 0) - (r && r.clientTop || s && s.clientTop || 0)
                }
                t.which = t.charCode || t.keyCode, null !== t.button && void 0 !== t.button && (t.button = 1 & t.button ? 0 : 4 & t.button ? 1 : 2 & t.button ? 2 : 0)
            }(), t
        }

        function l(t, e, n) {
            if (Array.isArray(e))return s(l, t, e, n);
            var i = d.getElData(t);
            i.handlers || (i.handlers = {}), i.handlers[e] || (i.handlers[e] = []), n.guid || (n.guid = y.newGUID()), i.handlers[e].push(n), i.dispatcher || (i.disabled = !1, i.dispatcher = function (e, n) {
                if (!i.disabled) {
                    e = a(e);
                    var o = i.handlers[e.type];
                    if (o)for (var r = o.slice(0), s = 0, l = r.length; s < l && !e.isImmediatePropagationStopped(); s++)try {
                        r[s].call(t, e, n)
                    } catch (u) {
                        m["default"].error(u)
                    }
                }
            }), 1 === i.handlers[e].length && (t.addEventListener ? t.addEventListener(e, i.dispatcher, !1) : t.attachEvent && t.attachEvent("on" + e, i.dispatcher))
        }

        function u(t, e, n) {
            if (d.hasElData(t)) {
                var i = d.getElData(t);
                if (i.handlers) {
                    if (Array.isArray(e))return s(u, t, e, n);
                    var o = function (e) {
                        i.handlers[e] = [], r(t, e)
                    };
                    if (e) {
                        var a = i.handlers[e];
                        if (a) {
                            if (!n)return void o(e);
                            if (n.guid)for (var l = 0; l < a.length; l++)a[l].guid === n.guid && a.splice(l--, 1);
                            r(t, e)
                        }
                    } else for (var c in i.handlers)o(c)
                }
            }
        }

        function c(t, e, n) {
            var i = d.hasElData(t) ? d.getElData(t) : {}, o = t.parentNode || t.ownerDocument;
            if ("string" == typeof e && (e = {
                    type: e,
                    target: t
                }), e = a(e), i.dispatcher && i.dispatcher.call(t, e, n), o && !e.isPropagationStopped() && e.bubbles === !0) c.call(null, o, e, n); else if (!o && !e.defaultPrevented) {
                var r = d.getElData(e.target);
                e.target[e.type] && (r.disabled = !0, "function" == typeof e.target[e.type] && e.target[e.type](), r.disabled = !1)
            }
            return !e.defaultPrevented
        }

        function h(t, e, n) {
            if (Array.isArray(e))return s(h, t, e, n);
            var i = function o() {
                u(t, e, o), n.apply(this, arguments)
            };
            i.guid = n.guid = n.guid || y.newGUID(), l(t, e, i)
        }

        n.__esModule = !0, n.fixEvent = a, n.on = l, n.off = u, n.trigger = c, n.one = h;
        var f = t("./dom.js"), d = o(f), p = t("./guid.js"), y = o(p), v = t("./log.js"), m = i(v), g = t("global/window"), b = i(g), _ = t("global/document"), w = i(_)
    }, {"./dom.js": 147, "./guid.js": 151, "./log.js": 152, "global/document": 9, "global/window": 10}],
    149: [function (t, e, n) {
        "use strict";
        n.__esModule = !0, n.bind = void 0;
        var i = t("./guid.js");
        n.bind = function (t, e, n) {
            e.guid || (e.guid = (0, i.newGUID)());
            var o = function () {
                return e.apply(t, arguments)
            };
            return o.guid = n ? n + "_" + e.guid : e.guid, o
        }
    }, {"./guid.js": 151}],
    150: [function (t, e, n) {
        "use strict";
        function i(t) {
            var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : t;
            t = t < 0 ? 0 : t;
            var n = Math.floor(t % 60), i = Math.floor(t / 60 % 60), o = Math.floor(t / 3600), r = Math.floor(e / 60 % 60), s = Math.floor(e / 3600);
            return (isNaN(t) || t === 1 / 0) && (o = i = n = "-"), o = o > 0 || s > 0 ? o + ":" : "", i = ((o || r >= 10) && i < 10 ? "0" + i : i) + ":", n = n < 10 ? "0" + n : n, o + i + n
        }

        n.__esModule = !0, n["default"] = i
    }, {}],
    151: [function (t, e, n) {
        "use strict";
        function i() {
            return o++
        }

        n.__esModule = !0, n.newGUID = i;
        var o = 1
    }, {}],
    152: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0, n.logByType = void 0;
        var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, r = t("global/window"), s = i(r), a = t("./browser"), l = void 0, u = n.logByType = function (t, e) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : !!a.IE_VERSION && a.IE_VERSION < 11;
            "log" !== t && e.unshift(t.toUpperCase() + ":"), l.history.push(e), e.unshift("VIDEOJS:");
            var i = s["default"].console && s["default"].console[t];
            i && (n && (e = e.map(function (t) {
                if (t && "object" === ("undefined" == typeof t ? "undefined" : o(t)) || Array.isArray(t))try {
                    return JSON.stringify(t)
                } catch (e) {
                    return String(t)
                }
                return String(t)
            }).join(" ")), i.apply ? i[Array.isArray(e) ? "apply" : "call"](s["default"].console, e) : i(e))
        };
        l = function () {
            for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)e[n] = arguments[n];
            u("log", e)
        }, l.history = [], l.error = function () {
            for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)e[n] = arguments[n];
            return u("error", e)
        }, l.warn = function () {
            for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)e[n] = arguments[n];
            return u("warn", e)
        }, n["default"] = l
    }, {"./browser": 144, "global/window": 10}],
    153: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t) {
            return !!t && "object" === ("undefined" == typeof t ? "undefined" : a(t)) && "[object Object]" === t.toString() && t.constructor === Object
        }

        function r(t, e) {
            return o(e) ? o(t) ? void 0 : s(e) : e
        }

        function s() {
            for (var t = arguments.length, e = Array(t), n = 0; n < t; n++)e[n] = arguments[n];
            return e.unshift({}), e.push(r), u["default"].apply(null, e), e[0]
        }

        n.__esModule = !0;
        var a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            };
        n["default"] = s;
        var l = t("lodash-compat/object/merge"), u = i(l)
    }, {"lodash-compat/object/merge": 48}],
    154: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            Object.keys(t).forEach(function (n) {
                return e(t[n], n)
            })
        }

        function o(t, e) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;
            return Object.keys(t).reduce(function (n, i) {
                return e(n, t[i], i)
            }, n)
        }

        n.__esModule = !0, n.each = i, n.reduce = o
    }, {}],
    155: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0, n.setTextContent = n.createStyleElement = void 0;
        var o = t("global/document"), r = i(o);
        n.createStyleElement = function (t) {
            var e = r["default"].createElement("style");
            return e.className = t, e
        }, n.setTextContent = function (t, e) {
            t.styleSheet ? t.styleSheet.cssText = e : t.textContent = e
        }
    }, {"global/document": 9}],
    156: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e, n) {
            if (e < 0 || e > n)throw new Error("Failed to execute '" + t + "' on 'TimeRanges': The index provided (" + e + ") is greater than or equal to the maximum bound (" + n + ").")
        }

        function r(t, e, n, i) {
            return void 0 === i && (u["default"].warn("DEPRECATED: Function '" + t + "' on 'TimeRanges' called without an index argument."), i = 0), o(t, i, n.length - 1), n[i][e]
        }

        function s(t) {
            return void 0 === t || 0 === t.length ? {
                    length: 0, start: function () {
                        throw new Error("This TimeRanges object is empty")
                    }, end: function () {
                        throw new Error("This TimeRanges object is empty")
                    }
                } : {length: t.length, start: r.bind(null, "start", 0, t), end: r.bind(null, "end", 1, t)}
        }

        function a(t, e) {
            return Array.isArray(t) ? s(t) : void 0 === t || void 0 === e ? s() : s([[t, e]])
        }

        n.__esModule = !0, n.createTimeRange = void 0, n.createTimeRanges = a;
        var l = t("./log.js"), u = i(l);
        n.createTimeRange = a
    }, {"./log.js": 152}],
    157: [function (t, e, n) {
        "use strict";
        function i(t) {
            return "string" != typeof t ? t : t.charAt(0).toUpperCase() + t.slice(1)
        }

        n.__esModule = !0, n["default"] = i
    }, {}],
    158: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        n.__esModule = !0, n.isCrossOrigin = n.getFileExtension = n.getAbsoluteURL = n.parseUrl = void 0;
        var o = t("global/document"), r = i(o), s = t("global/window"), a = i(s), l = n.parseUrl = function (t) {
            var e = ["protocol", "hostname", "port", "pathname", "search", "hash", "host"], n = r["default"].createElement("a");
            n.href = t;
            var i = "" === n.host && "file:" !== n.protocol, o = void 0;
            i && (o = r["default"].createElement("div"), o.innerHTML = '<a href="' + t + '"></a>', n = o.firstChild, o.setAttribute("style", "display:none; position:absolute;"), r["default"].body.appendChild(o));
            for (var s = {}, a = 0; a < e.length; a++)s[e[a]] = n[e[a]];
            return "http:" === s.protocol && (s.host = s.host.replace(/:80$/, "")), "https:" === s.protocol && (s.host = s.host.replace(/:443$/, "")), i && r["default"].body.removeChild(o), s
        };
        n.getAbsoluteURL = function (t) {
            if (!t.match(/^https?:\/\//)) {
                var e = r["default"].createElement("div");
                e.innerHTML = '<a href="' + t + '">x</a>', t = e.firstChild.href
            }
            return t
        }, n.getFileExtension = function (t) {
            if ("string" == typeof t) {
                var e = /^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i, n = e.exec(t);
                if (n)return n.pop().toLowerCase()
            }
            return ""
        }, n.isCrossOrigin = function (t) {
            var e = a["default"].location, n = l(t), i = ":" === n.protocol ? e.protocol : n.protocol, o = i + n.host !== e.protocol + e.host;
            return o
        }
    }, {"global/document": 9, "global/window": 10}],
    159: [function (t, e, n) {
        "use strict";
        function i(t) {
            if (t && t.__esModule)return t;
            var e = {};
            if (null != t)for (var n in t)Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
            return e["default"] = t, e
        }

        function o(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function r(t, e, n) {
            var i = void 0;
            if (e = e || {}, "string" == typeof t) {
                if (0 === t.indexOf("#") && (t = t.slice(1)), r.getPlayers()[t])return e && $["default"].warn('Player "' + t + '" is already initialised. Options will not be applied.'), n && r.getPlayers()[t].ready(n), r.getPlayers()[t];
                i = W.getEl(t)
            } else i = t;
            if (!i || !i.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");
            if (i.player || k["default"].players[i.playerId])return i.player || k["default"].players[i.playerId];
            r.hooks("beforesetup").forEach(function (t) {
                var n = t(i, (0, S["default"])(e));
                return !n || "object" !== ("undefined" == typeof n ? "undefined" : s(n)) || Array.isArray(n) ? void r.log.error("please return an object in beforesetup hooks") : void(e = (0, S["default"])(e, n))
            });
            var o = new k["default"](i, e, n);
            return r.hooks("setup").forEach(function (t) {
                return t(o)
            }), o
        }

        n.__esModule = !0;
        var s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
                return typeof t
            } : function (t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }, a = t("global/window"), l = o(a), u = t("global/document"), c = o(u), h = t("./setup"), f = i(h), d = t("./utils/stylesheet.js"), p = i(d), y = t("./component"), v = o(y), m = t("./event-target"), g = o(m), b = t("./utils/events.js"), _ = i(b), w = t("./player"), k = o(w), C = t("./plugins.js"), j = o(C), T = t("./utils/merge-options.js"), S = o(T), x = t("./utils/fn.js"), O = i(x), E = t("./tracks/text-track.js"), P = o(E), M = t("./tracks/audio-track.js"), A = o(M), L = t("./tracks/video-track.js"), D = o(L), F = t("./utils/time-ranges.js"), R = t("./utils/format-time.js"), I = o(R), N = t("./utils/log.js"), $ = o(N), B = t("./utils/dom.js"), W = i(B), H = t("./utils/browser.js"), V = i(H), Y = t("./utils/url.js"), z = i(Y), U = t("./utils/computed-style.js"), G = o(U), q = t("./extend.js"), X = o(q), K = t("lodash-compat/object/merge"), J = o(K), Z = t("xhr"), Q = o(Z), tt = t("./tech/tech.js"), et = o(tt);
        if ("undefined" == typeof HTMLVideoElement && l["default"].document && l["default"].document.createElement && (c["default"].createElement("video"), c["default"].createElement("audio"), c["default"].createElement("track")), r.hooks_ = {}, r.hooks = function (t, e) {
                return r.hooks_[t] = r.hooks_[t] || [], e && (r.hooks_[t] = r.hooks_[t].concat(e)), r.hooks_[t]
            }, r.hook = function (t, e) {
                r.hooks(t, e)
            }, r.removeHook = function (t, e) {
                var n = r.hooks(t).indexOf(e);
                return !(n <= -1) && (r.hooks_[t] = r.hooks_[t].slice(), r.hooks_[t].splice(n, 1), !0)
            }, l["default"].VIDEOJS_NO_DYNAMIC_STYLE !== !0) {
            var nt = W.$(".vjs-styles-defaults");
            if (!nt) {
                nt = p.createStyleElement("vjs-styles-defaults");
                var it = W.$("head");
                it && it.insertBefore(nt, it.firstChild), p.setTextContent(nt, "\n      .video-js {\n        width: 300px;\n        height: 150px;\n      }\n\n      .vjs-fluid {\n        padding-top: 56.25%\n      }\n    ")
            }
        }
        f.autoSetupTimeout(1, r), r.VERSION = "5.13.1", r.options = k["default"].prototype.options_, r.getPlayers = function () {
            return k["default"].players
        }, r.players = k["default"].players, r.getComponent = v["default"].getComponent, r.registerComponent = function (t, e) {
            et["default"].isTech(e) && $["default"].warn("The " + t + " tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"), v["default"].registerComponent.call(v["default"], t, e)
        }, r.getTech = et["default"].getTech, r.registerTech = et["default"].registerTech, r.browser = V, r.TOUCH_ENABLED = V.TOUCH_ENABLED, r.extend = X["default"], r.mergeOptions = S["default"], r.bind = O.bind, r.plugin = j["default"], r.addLanguage = function (t, e) {
            var n;
            return t = ("" + t).toLowerCase(), (0, J["default"])(r.options.languages, (n = {}, n[t] = e, n))[t]
        }, r.log = $["default"], r.createTimeRange = r.createTimeRanges = F.createTimeRanges, r.formatTime = I["default"], r.parseUrl = z.parseUrl, r.isCrossOrigin = z.isCrossOrigin, r.EventTarget = g["default"], r.on = _.on, r.one = _.one, r.off = _.off, r.trigger = _.trigger, r.xhr = Q["default"], r.TextTrack = P["default"], r.AudioTrack = A["default"], r.VideoTrack = D["default"], r.isEl = W.isEl, r.isTextNode = W.isTextNode, r.createEl = W.createEl, r.hasClass = W.hasElClass, r.addClass = W.addElClass, r.removeClass = W.removeElClass, r.toggleClass = W.toggleElClass, r.setAttributes = W.setElAttributes, r.getAttributes = W.getElAttributes, r.emptyEl = W.emptyEl, r.appendContent = W.appendContent, r.insertContent = W.insertContent, r.computedStyle = G["default"], "function" == typeof define && define.amd ? define("videojs", [], function () {
                return r
            }) : "object" === ("undefined" == typeof n ? "undefined" : s(n)) && "object" === ("undefined" == typeof e ? "undefined" : s(e)) && (e.exports = r), n["default"] = r
    }, {
        "./component": 70,
        "./event-target": 107,
        "./extend.js": 108,
        "./player": 116,
        "./plugins.js": 117,
        "./setup": 121,
        "./tech/tech.js": 128,
        "./tracks/audio-track.js": 130,
        "./tracks/text-track.js": 138,
        "./tracks/video-track.js": 143,
        "./utils/browser.js": 144,
        "./utils/computed-style.js": 146,
        "./utils/dom.js": 147,
        "./utils/events.js": 148,
        "./utils/fn.js": 149,
        "./utils/format-time.js": 150,
        "./utils/log.js": 152,
        "./utils/merge-options.js": 153,
        "./utils/stylesheet.js": 155,
        "./utils/time-ranges.js": 156,
        "./utils/url.js": 158,
        "global/document": 9,
        "global/window": 10,
        "lodash-compat/object/merge": 48,
        xhr: 164
    }],
    160: [function (t, e, n) {
        !function (t, n) {
            "function" == typeof define && define.amd ? define([], n.bind(this, t, t.videojs)) : "undefined" != typeof e && e.exports ? e.exports = n(t, t.videojs) : n(t, t.videojs)
        }(window, function (t, e) {
            "use strict";
            t.videojs_hotkeys = {version: "0.2.17"};
            var n = function (n) {
                function i(t) {
                    return 32 === t.which || 179 === t.which
                }

                function o(t) {
                    return 37 === t.which || 177 === t.which
                }

                function r(t) {
                    return 39 === t.which || 176 === t.which
                }

                function s(t) {
                    return 38 === t.which
                }

                function a(t) {
                    return 40 === t.which
                }

                function l(t) {
                    return 77 === t.which
                }

                function u(t) {
                    return 70 === t.which
                }

                var c = this, h = c.el(), f = document, d = {
                    volumeStep: .1,
                    seekStep: 5,
                    enableMute: !0,
                    enableVolumeScroll: !0,
                    enableFullscreen: !0,
                    enableNumbers: !0,
                    enableJogStyle: !1,
                    alwaysCaptureHotkeys: !1,
                    enableModifiersForNumbers: !0,
                    playPauseKey: i,
                    rewindKey: o,
                    forwardKey: r,
                    volumeUpKey: s,
                    volumeDownKey: a,
                    muteKey: l,
                    fullscreenKey: u,
                    customKeys: {}
                }, p = 1, y = 2, v = 3, m = 4, g = 5, b = 6, _ = 7, w = e.mergeOptions || e.util.mergeOptions;
                n = w(d, n || {});
                var k = n.volumeStep, C = n.seekStep, j = n.enableMute, T = n.enableVolumeScroll, S = n.enableFullscreen, x = n.enableNumbers, O = n.enableJogStyle, E = n.alwaysCaptureHotkeys, P = n.enableModifiersForNumbers;
                h.hasAttribute("tabIndex") || h.setAttribute("tabIndex", "-1"), h.style.outline = "none", !E && c.autoplay() || c.one("play", function () {
                    h.focus()
                }), c.on("userinactive", function () {
                    var t = function () {
                        clearTimeout(e)
                    }, e = setTimeout(function () {
                        c.off("useractive", t), f.activeElement.parentElement == h.querySelector(".vjs-control-bar") && h.focus()
                    }, 10);
                    c.one("useractive", t)
                }), c.on("play", function () {
                    var t = h.querySelector(".iframeblocker");
                    t && "" === t.style.display && (t.style.display = "block", t.style.bottom = "39px")
                });
                var M = function (t) {
                    var e, i = t.which, o = t.preventDefault;
                    if (c.controls()) {
                        var r = f.activeElement;
                        if (E || r == h || r == h.querySelector(".vjs-tech") || r == h.querySelector(".vjs-control-bar") || r == h.querySelector(".iframeblocker"))switch (D(t, c)) {
                            case p:
                                o(), E && t.stopPropagation(), c.paused() ? c.play() : c.pause();
                                break;
                            case y:
                                o(), e = c.currentTime() - C, c.currentTime() <= C && (e = 0), c.currentTime(e);
                                break;
                            case v:
                                o(), c.currentTime(c.currentTime() + C);
                                break;
                            case g:
                                o(), O ? (e = c.currentTime() - 1, c.currentTime() <= 1 && (e = 0), c.currentTime(e)) : c.volume(c.volume() - k);
                                break;
                            case m:
                                o(), O ? c.currentTime(c.currentTime() + 1) : c.volume(c.volume() + k);
                                break;
                            case b:
                                j && c.muted(!c.muted());
                                break;
                            case _:
                                S && (c.isFullscreen() ? c.exitFullscreen() : c.requestFullscreen());
                                break;
                            default:
                                if ((i > 47 && i < 59 || i > 95 && i < 106) && (P || !(t.metaKey || t.ctrlKey || t.altKey)) && x) {
                                    var s = 48;
                                    i > 95 && (s = 96);
                                    var a = i - s;
                                    o(), c.currentTime(c.duration() * a * .1)
                                }
                                for (var l in n.customKeys) {
                                    var u = n.customKeys[l];
                                    u && u.key && u.handler && u.key(t) && (o(), u.handler(c, n, t))
                                }
                        }
                    }
                }, A = function (t) {
                    if (c.controls()) {
                        var e = t.relatedTarget || t.toElement || f.activeElement;
                        e != h && e != h.querySelector(".vjs-tech") && e != h.querySelector(".iframeblocker") || S && (c.isFullscreen() ? c.exitFullscreen() : c.requestFullscreen())
                    }
                }, L = function (e) {
                    if (c.controls()) {
                        var n = e.relatedTarget || e.toElement || f.activeElement;
                        if ((E || n == h || n == h.querySelector(".vjs-tech") || n == h.querySelector(".iframeblocker") || n == h.querySelector(".vjs-control-bar")) && T) {
                            e = t.event || e;
                            var i = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
                            e.preventDefault(), 1 == i ? c.volume(c.volume() + k) : i == -1 && c.volume(c.volume() - k)
                        }
                    }
                }, D = function (t, e) {
                    return n.playPauseKey(t, e) ? p : n.rewindKey(t, e) ? y : n.forwardKey(t, e) ? v : n.volumeUpKey(t, e) ? m : n.volumeDownKey(t, e) ? g : n.muteKey(t, e) ? b : n.fullscreenKey(t, e) ? _ : void 0
                };
                return c.on("keydown", M), c.on("dblclick", A), c.on("mousewheel", L), c.on("DOMMouseScroll", L), this
            };
            e.plugin("hotkeys", n)
        })
    }, {}],
    161: [function (t, e, n) {
        !function () {
            "use strict";
            var e = null;
            e = "undefined" == typeof window.videojs && "function" == typeof t ? t("video.js") : window.videojs, function (t, e) {
                function n(t, e, n, i) {
                    return r = {label: n, sources: e}, "function" == typeof i ? i(t, e, n) : t.src(e.map(function (t) {
                            return {src: t.src, type: t.type, res: t.res}
                        }))
                }

                var i, o = {}, r = {}, s = {}, a = e.getComponent("MenuItem"), l = e.extend(a, {
                    constructor: function (t, e, n, i) {
                        this.onClickListener = n, this.label = i, a.call(this, t, e), this.src = e.src, this.on("click", this.onClick), this.on("touchstart", this.onClick), e.initialySelected && (this.showAsLabel(), this.selected(!0), this.addClass("vjs-selected"))
                    }, showAsLabel: function () {
                        this.label && (this.label.innerHTML = this.options_.label)
                    }, onClick: function (t) {
                        this.onClickListener(this);
                        var e = this.player_.currentTime(), i = this.player_.paused();
                        this.showAsLabel(), this.addClass("vjs-selected"), i || this.player_.bigPlayButton.hide(), "function" != typeof t && "function" == typeof this.options_.customSourcePicker && (t = this.options_.customSourcePicker);
                        var o = "loadeddata";
                        "none" === this.player_.preload() && "Flash" !== this.player_.techName_ && (o = "timeupdate"), n(this.player_, this.src, this.options_.label, t).one(o, function () {
                            this.player_.currentTime(e), this.player_.handleTechSeeked_(), i || this.player_.play().handleTechSeeked_(), this.player_.trigger("resolutionchange")
                        })
                    }
                }), u = e.getComponent("MenuButton"), c = e.extend(u, {
                    constructor: function (t, e, n, i) {
                        if (this.sources = e.sources, this.label = i, this.label.innerHTML = e.initialySelectedLabel, u.call(this, t, e, n), this.controlText("Quality"), n.dynamicLabel) this.el().appendChild(i); else {
                            var o = document.createElement("span");
                            o.classList.add("vjs-resolution-button-staticlabel"), this.el().appendChild(o)
                        }
                    }, createItems: function () {
                        var t = [], e = this.sources && this.sources.label || {}, n = function (e) {
                            t.map(function (t) {
                                t.selected(t === e), t.removeClass("vjs-selected")
                            })
                        };
                        for (var i in e)e.hasOwnProperty(i) && (t.push(new l(this.player_, {
                            label: i,
                            src: e[i],
                            initialySelected: i === this.options_.initialySelectedLabel,
                            customSourcePicker: this.options_.customSourcePicker
                        }, n, this.label)), s[i] = t[t.length - 1]);
                        return t
                    }
                });
                i = function (t) {
                    function i(t, e) {
                        return t.res && e.res ? +e.res - +t.res : 0
                    }

                    function a(t) {
                        var e = {label: {}, res: {}, type: {}};
                        return t.map(function (t) {
                            l(e, "label", t), l(e, "res", t), l(e, "type", t), u(e, "label", t), u(e, "res", t), u(e, "type", t)
                        }), e
                    }

                    function l(t, e, n) {
                        null == t[e][n[e]] && (t[e][n[e]] = [])
                    }

                    function u(t, e, n) {
                        t[e][n[e]].push(n)
                    }

                    function h(t, e) {
                        var n = f["default"], i = "";
                        return "high" === n ? (n = e[0].res, i = e[0].label): "low"
                    ===
                        n || null == n ? (n = e[e.length - 1].res, i = e[e.length - 1].label): t.res[n]
                    &&
                        (i = t.res[n][0].label), void 0 === n ? {res: n, label: i, sources: t.label[i]} : {
                                res: n,
                                label: i,
                                sources: t.res[n]
                            }
                    }

                    var f = e.mergeOptions(o, t), d = this, p = document.createElement("span"), y = {};
                    p.classList.add("vjs-resolution-button-label"), d.updateSrc = function (t) {
                        if (!t)return d.src();
                        d.controlBar.resolutionSwitcher && (d.controlBar.resolutionSwitcher.dispose(), delete d.controlBar.resolutionSwitcher), t = t.sort(i), y = a(t);
                        var e = h(y, t), o = new c(d, {
                            sources: y,
                            initialySelectedLabel: e.label,
                            initialySelectedRes: e.res,
                            customSourcePicker: f.customSourcePicker
                        }, f, p);
                        return o.el().classList.add("vjs-resolution-button"), d.controlBar.resolutionSwitcher = d.controlBar.el_.insertBefore(o.el_, d.controlBar.getChild("fullscreenToggle").el_), n(d, e.sources, e.label)
                    }, d.currentResolution = function (t, e) {
                        return null == t ? r : (null != s[t] && s[t].onClick(e), d)
                    }, d.getGroupedSrc = function () {
                        return y
                    }, d.options_.sources.length > 1 && d.ready(function () {
                        d.updateSrc(d.options_.sources)
                    })
                }, e.plugin("videoJsResolutionSwitcher", i)
            }(window, e)
        }()
    }, {"video.js": 159}],
    162: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("video.js"), r = i(o), s = {
            position: "top-right",
            fadeTime: 3e3,
            url: void 0,
            image: void 0
        }, a = function (t, e) {
            var n = t.el(), i = document.createElement("div"), o = document.createElement("img");
            if (i.classList.add("vjs-watermark-content"), i.classList.add("vjs-watermark-" + e.position), o.src = e.image, e.url) {
                var r = document.createElement("a");
                r.href = e.url, r.onclick = function (n) {
                    n.preventDefault(), t.pause(), window.open(e.url)
                }, r.appendChild(o), i.appendChild(r)
            } else i.appendChild(o);
            n.appendChild(i)
        }, l = function (t) {
            setTimeout(function () {
                return document.getElementById("vjs-watermark").classList.add("vjs-watermark-fade")
            }, t.fadeTime)
        }, u = function (t, e) {
            t.addClass("vjs-watermark"), e.image && (a(t, e), null !== e.fadeTime && t.on("play", function () {
                return l(e)
            }))
        }, c = function (t) {
            var e = this;
            this.ready(function () {
                u(e, r["default"].mergeOptions(s, t))
            })
        };
        r["default"].plugin("watermark", c), c.VERSION = "__VERSION__", n["default"] = c, e.exports = n["default"]
    }, {"video.js": 159}],
    163: [function (t, e, n) {
        "use strict";
        function i(t, e, n) {
            if (r(t, e))return void(t[e] = n);
            if (t._isVue)return void i(t._data, e, n);
            var o = t.__ob__;
            if (!o)return void(t[e] = n);
            if (o.convert(e, n), o.dep.notify(), o.vms)for (var s = o.vms.length; s--;) {
                var a = o.vms[s];
                a._proxy(e), a._digest()
            }
            return n
        }

        function o(t, e) {
            if (r(t, e)) {
                delete t[e];
                var n = t.__ob__;
                if (!n)return void(t._isVue && (delete t._data[e], t._digest()));
                if (n.dep.notify(), n.vms)for (var i = n.vms.length; i--;) {
                    var o = n.vms[i];
                    o._unproxy(e), o._digest()
                }
            }
        }

        function r(t, e) {
            return Yn.call(t, e)
        }

        function s(t) {
            return zn.test(t)
        }

        function a(t) {
            var e = (t + "").charCodeAt(0);
            return 36 === e || 95 === e
        }

        function l(t) {
            return null == t ? "" : t.toString()
        }

        function u(t) {
            if ("string" != typeof t)return t;
            var e = Number(t);
            return isNaN(e) ? t : e
        }

        function c(t) {
            return "true" === t || "false" !== t && t
        }

        function h(t) {
            var e = t.charCodeAt(0), n = t.charCodeAt(t.length - 1);
            return e !== n || 34 !== e && 39 !== e ? t : t.slice(1, -1)
        }

        function f(t) {
            return t.replace(Un, d)
        }

        function d(t, e) {
            return e ? e.toUpperCase() : ""
        }

        function p(t) {
            return t.replace(Gn, "$1-$2").replace(Gn, "$1-$2").toLowerCase()
        }

        function y(t) {
            return t.replace(qn, d)
        }

        function v(t, e) {
            return function (n) {
                var i = arguments.length;
                return i ? i > 1 ? t.apply(e, arguments) : t.call(e, n) : t.call(e)
            }
        }

        function m(t, e) {
            e = e || 0;
            for (var n = t.length - e, i = new Array(n); n--;)i[n] = t[n + e];
            return i
        }

        function g(t, e) {
            for (var n = Object.keys(e), i = n.length; i--;)t[n[i]] = e[n[i]];
            return t
        }

        function b(t) {
            return null !== t && "object" == typeof t
        }

        function _(t) {
            return Xn.call(t) === Kn
        }

        function w(t, e, n, i) {
            Object.defineProperty(t, e, {value: n, enumerable: !!i, writable: !0, configurable: !0})
        }

        function k(t, e) {
            var n, i, o, r, s, a = function l() {
                var a = Date.now() - r;
                a < e && a >= 0 ? n = setTimeout(l, e - a) : (n = null, s = t.apply(o, i), n || (o = i = null))
            };
            return function () {
                return o = this, i = arguments, r = Date.now(), n || (n = setTimeout(a, e)), s
            }
        }

        function C(t, e) {
            for (var n = t.length; n--;)if (t[n] === e)return n;
            return -1
        }

        function j(t) {
            var e = function n() {
                if (!n.cancelled)return t.apply(this, arguments)
            };
            return e.cancel = function () {
                e.cancelled = !0
            }, e
        }

        function T(t, e) {
            return t == e || !(!b(t) || !b(e)) && JSON.stringify(t) === JSON.stringify(e)
        }

        function S(t) {
            return /native code/.test(t.toString())
        }

        function x(t) {
            this.size = 0, this.limit = t, this.head = this.tail = void 0, this._keymap = Object.create(null)
        }

        function O() {
            return yi.charCodeAt(gi + 1)
        }

        function E() {
            return yi.charCodeAt(++gi)
        }

        function P() {
            return gi >= mi
        }

        function M() {
            for (; O() === Mi;)E()
        }

        function A(t) {
            return t === xi || t === Oi
        }

        function L(t) {
            return Ai[t]
        }

        function D(t, e) {
            return Li[t] === e
        }

        function F() {
            for (var t, e = E(); !P();)if (t = E(), t === Pi) E(); else if (t === e)break
        }

        function R(t) {
            for (var e = 0, n = t; !P();)if (t = O(), A(t)) F(); else if (n === t && e++, D(n, t) && e--, E(), 0 === e)break
        }

        function I() {
            for (var t = gi; !P();)if (bi = O(), A(bi)) F(); else if (L(bi)) R(bi); else if (bi === Ei) {
                if (E(), bi = O(), bi !== Ei) {
                    _i !== Ci && _i !== Si || (_i = ji);
                    break
                }
                E()
            } else {
                if (bi === Mi && (_i === Ti || _i === Si)) {
                    M();
                    break
                }
                _i === ji && (_i = Ti), E()
            }
            return yi.slice(t + 1, gi) || null
        }

        function N() {
            for (var t = []; !P();)t.push($());
            return t
        }

        function $() {
            var t, e = {};
            return _i = ji, e.name = I().trim(), _i = Si, t = B(), t.length && (e.args = t), e
        }

        function B() {
            for (var t = []; !P() && _i !== ji;) {
                var e = I();
                if (!e)break;
                t.push(W(e))
            }
            return t
        }

        function W(t) {
            if (ki.test(t))return {value: u(t), dynamic: !1};
            var e = h(t), n = e === t;
            return {value: n ? t : e, dynamic: n}
        }

        function H(t) {
            var e = wi.get(t);
            if (e)return e;
            yi = t, vi = {}, mi = yi.length, gi = -1, bi = "", _i = Ci;
            var n;
            return yi.indexOf("|") < 0 ? vi.expression = yi.trim() : (vi.expression = I().trim(), n = N(), n.length && (vi.filters = n)), wi.put(t, vi), vi
        }

        function V(t) {
            return t.replace(Fi, "\\$&")
        }

        function Y() {
            var t = V(Vi.delimiters[0]), e = V(Vi.delimiters[1]), n = V(Vi.unsafeDelimiters[0]), i = V(Vi.unsafeDelimiters[1]);
            Ii = new RegExp(n + "((?:.|\\n)+?)" + i + "|" + t + "((?:.|\\n)+?)" + e, "g"), Ni = new RegExp("^" + n + "((?:.|\\n)+?)" + i + "$"), Ri = new x(1e3)
        }

        function z(t) {
            Ri || Y();
            var e = Ri.get(t);
            if (e)return e;
            if (!Ii.test(t))return null;
            for (var n, i, o, r, s, a, l = [], u = Ii.lastIndex = 0; n = Ii.exec(t);)i = n.index, i > u && l.push({value: t.slice(u, i)}), o = Ni.test(n[0]), r = o ? n[1] : n[2], s = r.charCodeAt(0), a = 42 === s, r = a ? r.slice(1) : r, l.push({
                tag: !0,
                value: r.trim(),
                html: o,
                oneTime: a
            }), u = i + n[0].length;
            return u < t.length && l.push({value: t.slice(u)}), Ri.put(t, l), l
        }

        function U(t, e) {
            return t.length > 1 ? t.map(function (t) {
                    return G(t, e)
                }).join("+") : G(t[0], e, !0)
        }

        function G(t, e, n) {
            return t.tag ? t.oneTime && e ? '"' + e.$eval(t.value) + '"' : q(t.value, n) : '"' + t.value + '"'
        }

        function q(t, e) {
            if ($i.test(t)) {
                var n = H(t);
                return n.filters ? "this._applyFilters(" + n.expression + ",null," + JSON.stringify(n.filters) + ",false)" : "(" + t + ")"
            }
            return e ? t : "(" + t + ")"
        }

        function X(t, e, n, i) {
            Z(t, 1, function () {
                e.appendChild(t)
            }, n, i)
        }

        function K(t, e, n, i) {
            Z(t, 1, function () {
                ot(t, e)
            }, n, i)
        }

        function J(t, e, n) {
            Z(t, -1, function () {
                st(t)
            }, e, n)
        }

        function Z(t, e, n, i, o) {
            var r = t.__v_trans;
            if (!r || !r.hooks && !ai || !i._isCompiled || i.$parent && !i.$parent._isCompiled)return n(), void(o && o());
            var s = e > 0 ? "enter" : "leave";
            r[s](n, o)
        }

        function Q(t) {
            if ("string" == typeof t) {
                t = document.querySelector(t)
            }
            return t
        }

        function tt(t) {
            if (!t)return !1;
            var e = t.ownerDocument.documentElement, n = t.parentNode;
            return e === t || e === n || !(!n || 1 !== n.nodeType || !e.contains(n))
        }

        function et(t, e) {
            var n = t.getAttribute(e);
            return null !== n && t.removeAttribute(e), n
        }

        function nt(t, e) {
            var n = et(t, ":" + e);
            return null === n && (n = et(t, "v-bind:" + e)), n
        }

        function it(t, e) {
            return t.hasAttribute(e) || t.hasAttribute(":" + e) || t.hasAttribute("v-bind:" + e)
        }

        function ot(t, e) {
            e.parentNode.insertBefore(t, e)
        }

        function rt(t, e) {
            e.nextSibling ? ot(t, e.nextSibling) : e.parentNode.appendChild(t)
        }

        function st(t) {
            t.parentNode.removeChild(t)
        }

        function at(t, e) {
            e.firstChild ? ot(t, e.firstChild) : e.appendChild(t)
        }

        function lt(t, e) {
            var n = t.parentNode;
            n && n.replaceChild(e, t)
        }

        function ut(t, e, n, i) {
            t.addEventListener(e, n, i)
        }

        function ct(t, e, n) {
            t.removeEventListener(e, n)
        }

        function ht(t) {
            var e = t.className;
            return "object" == typeof e && (e = e.baseVal || ""), e
        }

        function ft(t, e) {
            ii && !/svg$/.test(t.namespaceURI) ? t.className = e : t.setAttribute("class", e)
        }

        function dt(t, e) {
            if (t.classList) t.classList.add(e); else {
                var n = " " + ht(t) + " ";
                n.indexOf(" " + e + " ") < 0 && ft(t, (n + e).trim())
            }
        }

        function pt(t, e) {
            if (t.classList) t.classList.remove(e); else {
                for (var n = " " + ht(t) + " ", i = " " + e + " "; n.indexOf(i) >= 0;)n = n.replace(i, " ");
                ft(t, n.trim())
            }
            t.className || t.removeAttribute("class")
        }

        function yt(t, e) {
            var n, i;
            if (gt(t) && Ct(t.content) && (t = t.content), t.hasChildNodes())for (vt(t), i = e ? document.createDocumentFragment() : document.createElement("div"); n = t.firstChild;)i.appendChild(n);
            return i
        }

        function vt(t) {
            for (var e; e = t.firstChild, mt(e);)t.removeChild(e);
            for (; e = t.lastChild, mt(e);)t.removeChild(e)
        }

        function mt(t) {
            return t && (3 === t.nodeType && !t.data.trim() || 8 === t.nodeType)
        }

        function gt(t) {
            return t.tagName && "template" === t.tagName.toLowerCase()
        }

        function bt(t, e) {
            var n = Vi.debug ? document.createComment(t) : document.createTextNode(e ? " " : "");
            return n.__v_anchor = !0, n
        }

        function _t(t) {
            if (t.hasAttributes())for (var e = t.attributes, n = 0, i = e.length; n < i; n++) {
                var o = e[n].name;
                if (Ui.test(o))return f(o.replace(Ui, ""))
            }
        }

        function wt(t, e, n) {
            for (var i; t !== e;)i = t.nextSibling, n(t), t = i;
            n(e)
        }

        function kt(t, e, n, i, o) {
            function r() {
                if (a++, s && a >= l.length) {
                    for (var t = 0; t < l.length; t++)i.appendChild(l[t]);
                    o && o()
                }
            }

            var s = !1, a = 0, l = [];
            wt(t, e, function (t) {
                t === e && (s = !0), l.push(t), J(t, n, r)
            })
        }

        function Ct(t) {
            return t && 11 === t.nodeType
        }

        function jt(t) {
            if (t.outerHTML)return t.outerHTML;
            var e = document.createElement("div");
            return e.appendChild(t.cloneNode(!0)), e.innerHTML
        }

        function Tt(t, e) {
            var n = t.tagName.toLowerCase(), i = t.hasAttributes();
            if (Gi.test(n) || qi.test(n)) {
                if (i)return St(t, e)
            } else {
                if (Lt(e, "components", n))return {id: n};
                var o = i && St(t, e);
                if (o)return o
            }
        }

        function St(t, e) {
            var n = t.getAttribute("is");
            if (null != n) {
                if (Lt(e, "components", n))return t.removeAttribute("is"), {id: n}
            } else if (n = nt(t, "is"), null != n)return {id: n, dynamic: !0}
        }

        function xt(t, e) {
            var n, o, s;
            for (n in e)o = t[n], s = e[n], r(t, n) ? b(o) && b(s) && xt(o, s) : i(t, n, s);
            return t
        }

        function Ot(t, e) {
            var n = Object.create(t || null);
            return e ? g(n, Mt(e)) : n
        }

        function Et(t) {
            if (t.components)for (var e, n = t.components = Mt(t.components), i = Object.keys(n), o = 0, r = i.length; o < r; o++) {
                var s = i[o];
                Gi.test(s) || qi.test(s) || (e = n[s], _(e) && (n[s] = Nn.extend(e)))
            }
        }

        function Pt(t) {
            var e, n, i = t.props;
            if (Jn(i))for (t.props = {}, e = i.length; e--;)n = i[e], "string" == typeof n ? t.props[n] = null : n.name && (t.props[n.name] = n); else if (_(i)) {
                var o = Object.keys(i);
                for (e = o.length; e--;)n = i[o[e]], "function" == typeof n && (i[o[e]] = {type: n})
            }
        }

        function Mt(t) {
            if (Jn(t)) {
                for (var e, n = {}, i = t.length; i--;) {
                    e = t[i];
                    var o = "function" == typeof e ? e.options && e.options.name || e.id : e.name || e.id;
                    o && (n[o] = e)
                }
                return n
            }
            return t
        }

        function At(t, e, n) {
            function i(i) {
                var o = Xi[i] || Ki;
                s[i] = o(t[i], e[i], n, i)
            }

            Et(e), Pt(e);
            var o, s = {};
            if (e["extends"] && (t = "function" == typeof e["extends"] ? At(t, e["extends"].options, n) : At(t, e["extends"], n)), e.mixins)for (var a = 0, l = e.mixins.length; a < l; a++) {
                var u = e.mixins[a], c = u.prototype instanceof Nn ? u.options : u;
                t = At(t, c, n)
            }
            for (o in t)i(o);
            for (o in e)r(t, o) || i(o);
            return s
        }

        function Lt(t, e, n, i) {
            if ("string" == typeof n) {
                var o, r = t[e], s = r[n] || r[o = f(n)] || r[o.charAt(0).toUpperCase() + o.slice(1)];
                return s
            }
        }

        function Dt() {
            this.id = Ji++, this.subs = []
        }

        function Ft(t) {
            eo = !1, t(), eo = !0
        }

        function Rt(t) {
            if (this.value = t, this.dep = new Dt, w(t, "__ob__", this), Jn(t)) {
                var e = Zn ? It : Nt;
                e(t, Qi, to), this.observeArray(t)
            } else this.walk(t)
        }

        function It(t, e) {
            t.__proto__ = e
        }

        function Nt(t, e, n) {
            for (var i = 0, o = n.length; i < o; i++) {
                var r = n[i];
                w(t, r, e[r])
            }
        }

        function $t(t, e) {
            if (t && "object" == typeof t) {
                var n;
                return r(t, "__ob__") && t.__ob__ instanceof Rt ? n = t.__ob__ : eo && (Jn(t) || _(t)) && Object.isExtensible(t) && !t._isVue && (n = new Rt(t)), n && e && n.addVm(e), n
            }
        }

        function Bt(t, e, n) {
            var i = new Dt, o = Object.getOwnPropertyDescriptor(t, e);
            if (!o || o.configurable !== !1) {
                var r = o && o.get, s = o && o.set, a = $t(n);
                Object.defineProperty(t, e, {
                    enumerable: !0, configurable: !0, get: function () {
                        var e = r ? r.call(t) : n;
                        if (Dt.target && (i.depend(), a && a.dep.depend(), Jn(e)))for (var o, s = 0, l = e.length; s < l; s++)o = e[s], o && o.__ob__ && o.__ob__.dep.depend();
                        return e
                    }, set: function (e) {
                        var o = r ? r.call(t) : n;
                        e !== o && (s ? s.call(t, e) : n = e, a = $t(e), i.notify())
                    }
                })
            }
        }

        function Wt(t) {
            t.prototype._init = function (t) {
                t = t || {}, this.$el = null, this.$parent = t.parent, this.$root = this.$parent ? this.$parent.$root : this, this.$children = [], this.$refs = {}, this.$els = {}, this._watchers = [], this._directives = [], this._uid = io++, this._isVue = !0, this._events = {}, this._eventsCount = {}, this._isFragment = !1, this._fragment = this._fragmentStart = this._fragmentEnd = null, this._isCompiled = this._isDestroyed = this._isReady = this._isAttached = this._isBeingDestroyed = this._vForRemoving = !1, this._unlinkFn = null, this._context = t._context || this.$parent, this._scope = t._scope, this._frag = t._frag, this._frag && this._frag.children.push(this), this.$parent && this.$parent.$children.push(this), t = this.$options = At(this.constructor.options, t, this), this._updateRef(), this._data = {}, this._callHook("init"), this._initState(), this._initEvents(), this._callHook("created"), t.el && this.$mount(t.el)
            }
        }

        function Ht(t) {
            if (void 0 === t)return "eof";
            var e = t.charCodeAt(0);
            switch (e) {
                case 91:
                case 93:
                case 46:
                case 34:
                case 39:
                case 48:
                    return t;
                case 95:
                case 36:
                    return "ident";
                case 32:
                case 9:
                case 10:
                case 13:
                case 160:
                case 65279:
                case 8232:
                case 8233:
                    return "ws"
            }
            return e >= 97 && e <= 122 || e >= 65 && e <= 90 ? "ident" : e >= 49 && e <= 57 ? "number" : "else"
        }

        function Vt(t) {
            var e = t.trim();
            return ("0" !== t.charAt(0) || !isNaN(t)) && (s(e) ? h(e) : "*" + e)
        }

        function Yt(t) {
            function e() {
                var e = t[c + 1];
                if (h === yo && "'" === e || h === vo && '"' === e)return c++, i = "\\" + e, d[ro](), !0
            }

            var n, i, o, r, s, a, l, u = [], c = -1, h = uo, f = 0, d = [];
            for (d[so] = function () {
                void 0 !== o && (u.push(o), o = void 0)
            }, d[ro] = function () {
                void 0 === o ? o = i : o += i
            }, d[ao] = function () {
                d[ro](), f++
            }, d[lo] = function () {
                if (f > 0) f--, h = po, d[ro](); else {
                    if (f = 0, o = Vt(o), o === !1)return !1;
                    d[so]()
                }
            }; null != h;)if (c++, n = t[c], "\\" !== n || !e()) {
                if (r = Ht(n), l = bo[h], s = l[r] || l["else"] || go, s === go)return;
                if (h = s[0], a = d[s[1]], a && (i = s[2], i = void 0 === i ? n : i, a() === !1))return;
                if (h === mo)return u.raw = t, u
            }
        }

        function zt(t) {
            var e = oo.get(t);
            return e || (e = Yt(t), e && oo.put(t, e)), e
        }

        function Ut(t, e) {
            return ee(e).get(t)
        }

        function Gt(t, e, n) {
            var o = t;
            if ("string" == typeof e && (e = Yt(e)), !e || !b(t))return !1;
            for (var r, s, a = 0, l = e.length; a < l; a++)r = t, s = e[a], "*" === s.charAt(0) && (s = ee(s.slice(1)).get.call(o, o)), a < l - 1 ? (t = t[s], b(t) || (t = {}, i(r, s, t))) : Jn(t) ? t.$set(s, n) : s in t ? t[s] = n : i(t, s, n);
            return !0
        }

        function qt() {
        }

        function Xt(t, e) {
            var n = Lo.length;
            return Lo[n] = e ? t.replace(xo, "\\n") : t, '"' + n + '"'
        }

        function Kt(t) {
            var e = t.charAt(0), n = t.slice(1);
            return Co.test(n) ? t : (n = n.indexOf('"') > -1 ? n.replace(Eo, Jt) : n, e + "scope." + n)
        }

        function Jt(t, e) {
            return Lo[e]
        }

        function Zt(t) {
            To.test(t), Lo.length = 0;
            var e = t.replace(Oo, Xt).replace(So, "");
            return e = (" " + e).replace(Mo, Kt).replace(Eo, Jt), Qt(e)
        }

        function Qt(t) {
            try {
                return new Function("scope", "return " + t + ";")
            } catch (e) {
                return qt
            }
        }

        function te(t) {
            var e = zt(t);
            if (e)return function (t, n) {
                Gt(t, e, n)
            }
        }

        function ee(t, e) {
            t = t.trim();
            var n = wo.get(t);
            if (n)return e && !n.set && (n.set = te(n.exp)), n;
            var i = {exp: t};
            return i.get = ne(t) && t.indexOf("[") < 0 ? Qt("scope." + t) : Zt(t), e && (i.set = te(t)), wo.put(t, i), i
        }

        function ne(t) {
            return Po.test(t) && !Ao.test(t) && "Math." !== t.slice(0, 5)
        }

        function ie() {
            Fo.length = 0, Ro.length = 0, Io = {}, No = {}, $o = !1
        }

        function oe() {
            for (var t = !0; t;)t = !1, re(Fo), re(Ro), Fo.length ? t = !0 : (ti && Vi.devtools && ti.emit("flush"), ie())
        }

        function re(t) {
            for (var e = 0; e < t.length; e++) {
                var n = t[e], i = n.id;
                Io[i] = null, n.run()
            }
            t.length = 0
        }

        function se(t) {
            var e = t.id;
            if (null == Io[e]) {
                var n = t.user ? Ro : Fo;
                Io[e] = n.length, n.push(t), $o || ($o = !0, fi(oe))
            }
        }

        function ae(t, e, n, i) {
            i && g(this, i);
            var o = "function" == typeof e;
            if (this.vm = t, t._watchers.push(this), this.expression = e, this.cb = n, this.id = ++Bo, this.active = !0, this.dirty = this.lazy, this.deps = [], this.newDeps = [], this.depIds = new di, this.newDepIds = new di, this.prevError = null, o) this.getter = e, this.setter = void 0; else {
                var r = ee(e, this.twoWay);
                this.getter = r.get, this.setter = r.set
            }
            this.value = this.lazy ? void 0 : this.get(), this.queued = this.shallow = !1
        }

        function le(t, e) {
            var n = void 0, i = void 0;
            e || (e = Wo, e.clear());
            var o = Jn(t), r = b(t);
            if ((o || r) && Object.isExtensible(t)) {
                if (t.__ob__) {
                    var s = t.__ob__.dep.id;
                    if (e.has(s))return;
                    e.add(s)
                }
                if (o)for (n = t.length; n--;)le(t[n], e); else if (r)for (i = Object.keys(t), n = i.length; n--;)le(t[i[n]], e)
            }
        }

        function ue(t) {
            return gt(t) && Ct(t.content)
        }

        function ce(t, e) {
            var n = e ? t : t.trim(), i = Vo.get(n);
            if (i)return i;
            var o = document.createDocumentFragment(), r = t.match(Uo), s = Go.test(t), a = qo.test(t);
            if (r || s || a) {
                var l = r && r[1], u = zo[l] || zo.efault, c = u[0], h = u[1], f = u[2], d = document.createElement("div");
                for (d.innerHTML = h + t + f; c--;)d = d.lastChild;
                for (var p; p = d.firstChild;)o.appendChild(p)
            } else o.appendChild(document.createTextNode(t));
            return e || vt(o), Vo.put(n, o), o
        }

        function he(t) {
            if (ue(t))return ce(t.innerHTML);
            if ("SCRIPT" === t.tagName)return ce(t.textContent);
            for (var e, n = fe(t), i = document.createDocumentFragment(); e = n.firstChild;)i.appendChild(e);
            return vt(i), i
        }

        function fe(t) {
            if (!t.querySelectorAll)return t.cloneNode();
            var e, n, i, o = t.cloneNode(!0);
            if (Xo) {
                var r = o;
                if (ue(t) && (t = t.content, r = o.content), n = t.querySelectorAll("template"), n.length)for (i = r.querySelectorAll("template"), e = i.length; e--;)i[e].parentNode.replaceChild(fe(n[e]), i[e])
            }
            if (Ko)if ("TEXTAREA" === t.tagName) o.value = t.value; else if (n = t.querySelectorAll("textarea"), n.length)for (i = o.querySelectorAll("textarea"), e = i.length; e--;)i[e].value = n[e].value;
            return o
        }

        function de(t, e, n) {
            var i, o;
            return Ct(t) ? (vt(t), e ? fe(t) : t) : ("string" == typeof t ? n || "#" !== t.charAt(0) ? o = ce(t, n) : (o = Yo.get(t), o || (i = document.getElementById(t.slice(1)), i && (o = he(i), Yo.put(t, o)))) : t.nodeType && (o = he(t)), o && e ? fe(o) : o)
        }

        function pe(t, e, n, i, o, r) {
            this.children = [], this.childFrags = [], this.vm = e, this.scope = o, this.inserted = !1, this.parentFrag = r, r && r.childFrags.push(this), this.unlink = t(e, n, i, o, this);
            var s = this.single = 1 === n.childNodes.length && !n.childNodes[0].__v_anchor;
            s ? (this.node = n.childNodes[0], this.before = ye, this.remove = ve) : (this.node = bt("fragment-start"), this.end = bt("fragment-end"), this.frag = n, at(this.node, n), n.appendChild(this.end), this.before = me, this.remove = ge), this.node.__v_frag = this
        }

        function ye(t, e) {
            this.inserted = !0;
            var n = e !== !1 ? K : ot;
            n(this.node, t, this.vm), tt(this.node) && this.callHook(be)
        }

        function ve() {
            this.inserted = !1;
            var t = tt(this.node), e = this;
            this.beforeRemove(), J(this.node, this.vm, function () {
                t && e.callHook(_e), e.destroy()
            })
        }

        function me(t, e) {
            this.inserted = !0;
            var n = this.vm, i = e !== !1 ? K : ot;
            wt(this.node, this.end, function (e) {
                i(e, t, n)
            }), tt(this.node) && this.callHook(be)
        }

        function ge() {
            this.inserted = !1;
            var t = this, e = tt(this.node);
            this.beforeRemove(), kt(this.node, this.end, this.vm, this.frag, function () {
                e && t.callHook(_e), t.destroy()
            })
        }

        function be(t) {
            !t._isAttached && tt(t.$el) && t._callHook("attached")
        }

        function _e(t) {
            t._isAttached && !tt(t.$el) && t._callHook("detached")
        }

        function we(t, e) {
            this.vm = t;
            var n, i = "string" == typeof e;
            i || gt(e) && !e.hasAttribute("v-if") ? n = de(e, !0) : (n = document.createDocumentFragment(), n.appendChild(e)), this.template = n;
            var o, r = t.constructor.cid;
            if (r > 0) {
                var s = r + (i ? e : jt(e));
                o = Qo.get(s), o || (o = Ke(n, t.$options, !0), Qo.put(s, o))
            } else o = Ke(n, t.$options, !0);
            this.linker = o
        }

        function ke(t, e, n) {
            var i = t.node.previousSibling;
            if (i) {
                for (t = i.__v_frag; !(t && t.forId === n && t.inserted || i === e);) {
                    if (i = i.previousSibling, !i)return;
                    t = i.__v_frag
                }
                return t
            }
        }

        function Ce(t) {
            for (var e = -1, n = new Array(Math.floor(t)); ++e < t;)n[e] = e;
            return n
        }

        function je(t, e, n, i) {
            return i ? "$index" === i ? t : i.charAt(0).match(/\w/) ? Ut(n, i) : n[i] : e || n
        }

        function Te(t) {
            var e = t.node;
            if (t.end)for (; !e.__vue__ && e !== t.end && e.nextSibling;)e = e.nextSibling;
            return e.__vue__
        }

        function Se(t, e, n) {
            for (var i, o, r, s = e ? [] : null, a = 0, l = t.options.length; a < l; a++)if (i = t.options[a], r = n ? i.hasAttribute("selected") : i.selected) {
                if (o = i.hasOwnProperty("_value") ? i._value : i.value, !e)return o;
                s.push(o)
            }
            return s
        }

        function xe(t, e) {
            for (var n = t.length; n--;)if (T(t[n], e))return n;
            return -1
        }

        function Oe(t, e) {
            var n = e.map(function (t) {
                var e = t.charCodeAt(0);
                return e > 47 && e < 58 ? parseInt(t, 10) : 1 === t.length && (e = t.toUpperCase().charCodeAt(0), e > 64 && e < 91) ? e : _r[t]
            });
            return n = [].concat.apply([], n), function (e) {
                if (n.indexOf(e.keyCode) > -1)return t.call(this, e)
            }
        }

        function Ee(t) {
            return function (e) {
                return e.stopPropagation(), t.call(this, e)
            }
        }

        function Pe(t) {
            return function (e) {
                return e.preventDefault(), t.call(this, e)
            }
        }

        function Me(t) {
            return function (e) {
                if (e.target === e.currentTarget)return t.call(this, e)
            }
        }

        function Ae(t) {
            if (Tr[t])return Tr[t];
            var e = Le(t);
            return Tr[t] = Tr[e] = e, e
        }

        function Le(t) {
            t = p(t);
            var e = f(t), n = e.charAt(0).toUpperCase() + e.slice(1);
            Sr || (Sr = document.createElement("div"));
            var i, o = kr.length;
            if ("filter" !== e && e in Sr.style)return {kebab: t, camel: e};
            for (; o--;)if (i = Cr[o] + n, i in Sr.style)return {kebab: kr[o] + t, camel: i}
        }

        function De(t) {
            var e = [];
            if (Jn(t))for (var n = 0, i = t.length; n < i; n++) {
                var o = t[n];
                if (o)if ("string" == typeof o) e.push(o); else for (var r in o)o[r] && e.push(r)
            } else if (b(t))for (var s in t)t[s] && e.push(s);
            return e
        }

        function Fe(t, e, n) {
            if (e = e.trim(), e.indexOf(" ") === -1)return void n(t, e);
            for (var i = e.split(/\s+/), o = 0, r = i.length; o < r; o++)n(t, i[o])
        }

        function Re(t, e, n) {
            function i() {
                ++r >= o ? n() : t[r].call(e, i)
            }

            var o = t.length, r = 0;
            t[0].call(e, i)
        }

        function Ie(t, e, n) {
            for (var i, o, r, a, l, u, c, h = [], d = n.$options.propsData, y = Object.keys(e), v = y.length; v--;)if (o = y[v], i = e[o] || Hr, l = f(o), Vr.test(l)) {
                if (c = {
                        name: o,
                        path: l,
                        options: i,
                        mode: Wr.ONE_WAY,
                        raw: null
                    }, r = p(o), null === (a = nt(t, r)) && (null !== (a = nt(t, r + ".sync")) ? c.mode = Wr.TWO_WAY : null !== (a = nt(t, r + ".once")) && (c.mode = Wr.ONE_TIME)), null !== a) c.raw = a, u = H(a), a = u.expression, c.filters = u.filters, s(a) && !u.filters ? c.optimizedLiteral = !0 : c.dynamic = !0, c.parentPath = a; else if (null !== (a = et(t, r))) c.raw = a; else if (d && null !== (a = d[o] || d[l])) c.raw = a; else;
                h.push(c)
            }
            return Ne(h)
        }

        function Ne(t) {
            return function (e, n) {
                e._props = {};
                for (var i, o, s, a, l, f = e.$options.propsData, d = t.length; d--;)if (i = t[d], l = i.raw, o = i.path, s = i.options, e._props[o] = i, f && r(f, o) && Be(e, i, f[o]), null === l) Be(e, i, void 0); else if (i.dynamic) i.mode === Wr.ONE_TIME ? (a = (n || e._context || e).$get(i.parentPath), Be(e, i, a)) : e._context ? e._bindDir({
                            name: "prop",
                            def: zr,
                            prop: i
                        }, null, null, n) : Be(e, i, e.$get(i.parentPath)); else if (i.optimizedLiteral) {
                    var y = h(l);
                    a = y === l ? c(u(l)) : y, Be(e, i, a)
                } else a = s.type === Boolean && ("" === l || l === p(i.name)) || l, Be(e, i, a)
            }
        }

        function $e(t, e, n, i) {
            var o = e.dynamic && ne(e.parentPath), r = n;
            void 0 === r && (r = He(t, e)), r = Ye(e, r, t);
            var s = r !== n;
            Ve(e, r, t) || (r = void 0), o && !s ? Ft(function () {
                    i(r)
                }) : i(r)
        }

        function Be(t, e, n) {
            $e(t, e, n, function (n) {
                Bt(t, e.path, n)
            })
        }

        function We(t, e, n) {
            $e(t, e, n, function (n) {
                t[e.path] = n
            })
        }

        function He(t, e) {
            var n = e.options;
            if (!r(n, "default"))return n.type !== Boolean && void 0;
            var i = n["default"];
            return b(i), "function" == typeof i && n.type !== Function ? i.call(t) : i
        }

        function Ve(t, e, n) {
            if (!t.options.required && (null === t.raw || null == e))return !0;
            var i = t.options, o = i.type, r = !o, s = [];
            if (o) {
                Jn(o) || (o = [o]);
                for (var a = 0; a < o.length && !r; a++) {
                    var l = ze(e, o[a]);
                    s.push(l.expectedType), r = l.valid
                }
            }
            if (!r)return !1;
            var u = i.validator;
            return !(u && !u(e))
        }

        function Ye(t, e, n) {
            var i = t.options.coerce;
            return i && "function" == typeof i ? i(e) : e
        }

        function ze(t, e) {
            var n, i;
            return e === String ? (i = "string", n = typeof t === i): e
        ===
            Number ? (i = "number", n = typeof t === i): e
        ===
            Boolean ? (i = "boolean", n = typeof t === i): e
        ===
            Function ? (i = "function", n = typeof t === i): e
        ===
            Object ? (i = "object", n = _(t)): e
        ===
            Array ? (i = "array", n = Jn(t)): n= t instanceof e, {valid: n, expectedType: i}
        }

        function Ue(t) {
            Ur.push(t), Gr || (Gr = !0, fi(Ge))
        }

        function Ge() {
            for (var t = document.documentElement.offsetHeight, e = 0; e < Ur.length; e++)Ur[e]();
            return Ur = [], Gr = !1, t
        }

        function qe(t, e, n, i) {
            this.id = e, this.el = t, this.enterClass = n && n.enterClass || e + "-enter", this.leaveClass = n && n.leaveClass || e + "-leave", this.hooks = n, this.vm = i, this.pendingCssEvent = this.pendingCssCb = this.cancel = this.pendingJsCb = this.op = this.cb = null, this.justEntered = !1, this.entered = this.left = !1, this.typeCache = {}, this.type = n && n.type;
            var o = this;
            ["enterNextTick", "enterDone", "leaveNextTick", "leaveDone"].forEach(function (t) {
                o[t] = v(o[t], o)
            })
        }

        function Xe(t) {
            if (/svg$/.test(t.namespaceURI)) {
                var e = t.getBoundingClientRect();
                return !(e.width || e.height)
            }
            return !(t.offsetWidth || t.offsetHeight || t.getClientRects().length)
        }

        function Ke(t, e, n) {
            var i = n || !e._asComponent ? on(t, e) : null, o = i && i.terminal || wn(t) || !t.hasChildNodes() ? null : cn(t.childNodes, e);
            return function (t, e, n, r, s) {
                var a = m(e.childNodes), l = Je(function () {
                    i && i(t, e, n, r, s), o && o(t, a, n, r, s)
                }, t);
                return Qe(t, l)
            }
        }

        function Je(t, e) {
            e._directives = [];
            var n = e._directives.length;
            t();
            var i = e._directives.slice(n);
            Ze(i);
            for (var o = 0, r = i.length; o < r; o++)i[o]._bind();
            return i
        }

        function Ze(t) {
            if (0 !== t.length) {
                var e, n, i, o, r = {}, s = 0, a = [];
                for (e = 0, n = t.length; e < n; e++) {
                    var l = t[e], u = l.descriptor.def.priority || ls, c = r[u];
                    c || (c = r[u] = [], a.push(u)), c.push(l)
                }
                for (a.sort(function (t, e) {
                    return t > e ? -1 : t === e ? 0 : 1
                }), e = 0, n = a.length; e < n; e++) {
                    var h = r[a[e]];
                    for (i = 0, o = h.length; i < o; i++)t[s++] = h[i]
                }
            }
        }

        function Qe(t, e, n, i) {
            function o(o) {
                tn(t, e, o), n && i && tn(n, i)
            }

            return o.dirs = e, o
        }

        function tn(t, e, n) {
            for (var i = e.length; i--;)e[i]._teardown()
        }

        function en(t, e, n, i) {
            var o = Ie(e, n, t), r = Je(function () {
                o(t, i)
            }, t);
            return Qe(t, r)
        }

        function nn(t, e, n) {
            var i, o, r = e._containerAttrs, s = e._replacerAttrs;
            if (11 !== t.nodeType) e._asComponent ? (r && n && (i = mn(r, n)), s && (o = mn(s, e))) : o = mn(t.attributes, e); else;
            return e._containerAttrs = e._replacerAttrs = null, function (t, e, n) {
                var r, s = t._context;
                s && i && (r = Je(function () {
                    i(s, e, null, n)
                }, s));
                var a = Je(function () {
                    o && o(t, e)
                }, t);
                return Qe(t, a, s, r)
            }
        }

        function on(t, e) {
            var n = t.nodeType;
            return 1 !== n || wn(t) ? 3 === n && t.data.trim() ? sn(t, e) : null : rn(t, e)
        }

        function rn(t, e) {
            if ("TEXTAREA" === t.tagName) {
                if (null !== et(t, "v-pre"))return yn;
                var n = z(t.value);
                n && (t.setAttribute(":value", U(n)), t.value = "")
            }
            var i, o = t.hasAttributes(), r = o && m(t.attributes);
            return o && (i = pn(t, r, e)), i || (i = fn(t, e)), i || (i = dn(t, e)), !i && o && (i = mn(r, e)), i
        }

        function sn(t, e) {
            if (t._skip)return an;
            var n = z(t.wholeText);
            if (!n)return null;
            for (var i = t.nextSibling; i && 3 === i.nodeType;)i._skip = !0, i = i.nextSibling;
            for (var o, r, s = document.createDocumentFragment(), a = 0, l = n.length; a < l; a++)r = n[a], o = r.tag ? ln(r, e) : document.createTextNode(r.value), s.appendChild(o);
            return un(n, s, e)
        }

        function an(t, e) {
            st(e)
        }

        function ln(t, e) {
            function n(e) {
                if (!t.descriptor) {
                    var n = H(t.value);
                    t.descriptor = {name: e, def: Nr[e], expression: n.expression, filters: n.filters}
                }
            }

            var i;
            return t.oneTime ? i = document.createTextNode(t.value) : t.html ? (i = document.createComment("v-html"), n("html")) : (i = document.createTextNode(" "), n("text")), i
        }

        function un(t, e) {
            return function (n, i, o, r) {
                for (var s, a, u, c = e.cloneNode(!0), h = m(c.childNodes), f = 0, d = t.length; f < d; f++)s = t[f], a = s.value, s.tag && (u = h[f], s.oneTime ? (a = (r || n).$eval(a), s.html ? lt(u, de(a, !0)) : u.data = l(a)) : n._bindDir(s.descriptor, u, o, r));
                lt(i, c)
            }
        }

        function cn(t, e) {
            for (var n, i, o, r = [], s = 0, a = t.length; s < a; s++)o = t[s], n = on(o, e), i = n && n.terminal || "SCRIPT" === o.tagName || !o.hasChildNodes() ? null : cn(o.childNodes, e), r.push(n, i);
            return r.length ? hn(r) : null
        }

        function hn(t) {
            return function (e, n, i, o, r) {
                for (var s, a, l, u = 0, c = 0, h = t.length; u < h; c++) {
                    s = n[c], a = t[u++], l = t[u++];
                    var f = m(s.childNodes);
                    a && a(e, s, i, o, r), l && l(e, f, i, o, r)
                }
            }
        }

        function fn(t, e) {
            var n = t.tagName.toLowerCase();
            if (!Gi.test(n)) {
                var i = Lt(e, "elementDirectives", n);
                return i ? vn(t, n, "", e, i) : void 0
            }
        }

        function dn(t, e) {
            var n = Tt(t, e);
            if (n) {
                var i = _t(t), o = {
                    name: "component",
                    ref: i,
                    expression: n.id,
                    def: ns.component,
                    modifiers: {literal: !n.dynamic}
                }, r = function (t, e, n, r, s) {
                    i && Bt((r || t).$refs, i, null), t._bindDir(o, e, n, r, s)
                };
                return r.terminal = !0, r
            }
        }

        function pn(t, e, n) {
            if (null !== et(t, "v-pre"))return yn;
            if (t.hasAttribute("v-else")) {
                var i = t.previousElementSibling;
                if (i && i.hasAttribute("v-if"))return yn
            }
            for (var o, r, s, a, l, u, c, h, f, d, p = 0, y = e.length; p < y; p++)o = e[p], r = o.name.replace(ss, ""), (l = r.match(rs)) && (f = Lt(n, "directives", l[1]), f && f.terminal && (!d || (f.priority || us) > d.priority) && (d = f, c = o.name, a = gn(o.name), s = o.value, u = l[1], h = l[2]));
            return d ? vn(t, u, s, n, d, c, h, a) : void 0
        }

        function yn() {
        }

        function vn(t, e, n, i, o, r, s, a) {
            var l = H(n), u = {
                name: e,
                arg: s,
                expression: l.expression,
                filters: l.filters,
                raw: n,
                attr: r,
                modifiers: a,
                def: o
            };
            "for" !== e && "router-view" !== e || (u.ref = _t(t));
            var c = function (t, e, n, i, o) {
                u.ref && Bt((i || t).$refs, u.ref, null), t._bindDir(u, e, n, i, o)
            };
            return c.terminal = !0, c
        }

        function mn(t, e) {
            function n(t, e, n) {
                var i = n && _n(n), o = !i && H(r);
                y.push({
                    name: t,
                    attr: s,
                    raw: a,
                    def: e,
                    arg: u,
                    modifiers: c,
                    expression: o && o.expression,
                    filters: o && o.filters,
                    interp: n,
                    hasOneTime: i
                })
            }

            for (var i, o, r, s, a, l, u, c, h, f, d, p = t.length, y = []; p--;)if (i = t[p], o = s = i.name, r = a = i.value, f = z(r), u = null, c = gn(o), o = o.replace(ss, ""), f) r = U(f), u = o, n("bind", Nr.bind, f); else if (as.test(o)) c.literal = !is.test(o), n("transition", ns.transition); else if (os.test(o)) u = o.replace(os, ""), n("on", Nr.on); else if (is.test(o)) l = o.replace(is, ""), "style" === l || "class" === l ? n(l, ns[l]) : (u = l, n("bind", Nr.bind)); else if (d = o.match(rs)) {
                if (l = d[1], u = d[2], "else" === l)continue;
                h = Lt(e, "directives", l, !0), h && n(l, h)
            }
            if (y.length)return bn(y)
        }

        function gn(t) {
            var e = Object.create(null), n = t.match(ss);
            if (n)for (var i = n.length; i--;)e[n[i].slice(1)] = !0;
            return e
        }

        function bn(t) {
            return function (e, n, i, o, r) {
                for (var s = t.length; s--;)e._bindDir(t[s], n, i, o, r)
            }
        }

        function _n(t) {
            for (var e = t.length; e--;)if (t[e].oneTime)return !0
        }

        function wn(t) {
            return "SCRIPT" === t.tagName && (!t.hasAttribute("type") || "text/javascript" === t.getAttribute("type"))
        }

        function kn(t, e) {
            return e && (e._containerAttrs = jn(t)), gt(t) && (t = de(t)), e && (e._asComponent && !e.template && (e.template = "<slot></slot>"), e.template && (e._content = yt(t), t = Cn(t, e))), Ct(t) && (at(bt("v-start", !0), t), t.appendChild(bt("v-end", !0))), t
        }

        function Cn(t, e) {
            var n = e.template, i = de(n, !0);
            if (i) {
                var o = i.firstChild;
                if (!o)return i;
                var r = o.tagName && o.tagName.toLowerCase();
                return e.replace ? (t === document.body, i.childNodes.length > 1 || 1 !== o.nodeType || "component" === r || Lt(e, "components", r) || it(o, "is") || Lt(e, "elementDirectives", r) || o.hasAttribute("v-for") || o.hasAttribute("v-if") ? i : (e._replacerAttrs = jn(o), Tn(t, o), o)) : (t.appendChild(i), t)
            }
        }

        function jn(t) {
            if (1 === t.nodeType && t.hasAttributes())return m(t.attributes)
        }

        function Tn(t, e) {
            for (var n, i, o = t.attributes, r = o.length; r--;)n = o[r].name, i = o[r].value, e.hasAttribute(n) || cs.test(n) ? "class" === n && !z(i) && (i = i.trim()) && i.split(/\s+/).forEach(function (t) {
                    dt(e, t)
                }) : e.setAttribute(n, i)
        }

        function Sn(t, e) {
            if (e) {
                for (var n, i, o = t._slotContents = Object.create(null), r = 0, s = e.children.length; r < s; r++)n = e.children[r], (i = n.getAttribute("slot")) && (o[i] || (o[i] = [])).push(n);
                for (i in o)o[i] = xn(o[i], e);
                if (e.hasChildNodes()) {
                    var a = e.childNodes;
                    if (1 === a.length && 3 === a[0].nodeType && !a[0].data.trim())return;
                    o["default"] = xn(e.childNodes, e)
                }
            }
        }

        function xn(t, e) {
            var n = document.createDocumentFragment();
            t = m(t);
            for (var i = 0, o = t.length; i < o; i++) {
                var r = t[i];
                !gt(r) || r.hasAttribute("v-if") || r.hasAttribute("v-for") || (e.removeChild(r), r = de(r, !0)), n.appendChild(r)
            }
            return n
        }

        function On(t) {
            function e() {
            }

            function n(t, e) {
                var n = new ae(e, t, null, {lazy: !0});
                return function () {
                    return n.dirty && n.evaluate(), Dt.target && n.depend(), n.value
                }
            }

            Object.defineProperty(t.prototype, "$data", {
                get: function () {
                    return this._data
                }, set: function (t) {
                    t !== this._data && this._setData(t)
                }
            }), t.prototype._initState = function () {
                this._initProps(), this._initMeta(), this._initMethods(), this._initData(), this._initComputed()
            }, t.prototype._initProps = function () {
                var t = this.$options, e = t.el, n = t.props;
                e = t.el = Q(e), this._propsUnlinkFn = e && 1 === e.nodeType && n ? en(this, e, n, this._scope) : null
            }, t.prototype._initData = function () {
                var t = this.$options.data, e = this._data = t ? t() : {};
                _(e) || (e = {});
                var n, i, o = this._props, s = Object.keys(e);
                for (n = s.length; n--;)i = s[n], o && r(o, i) || this._proxy(i);
                $t(e, this)
            }, t.prototype._setData = function (t) {
                t = t || {};
                var e = this._data;
                this._data = t;
                var n, i, o;
                for (n = Object.keys(e), o = n.length; o--;)i = n[o], i in t || this._unproxy(i);
                for (n = Object.keys(t), o = n.length; o--;)i = n[o], r(this, i) || this._proxy(i);
                e.__ob__.removeVm(this), $t(t, this), this._digest()
            }, t.prototype._proxy = function (t) {
                if (!a(t)) {
                    var e = this;
                    Object.defineProperty(e, t, {
                        configurable: !0, enumerable: !0, get: function () {
                            return e._data[t]
                        }, set: function (n) {
                            e._data[t] = n
                        }
                    })
                }
            }, t.prototype._unproxy = function (t) {
                a(t) || delete this[t]
            }, t.prototype._digest = function () {
                for (var t = 0, e = this._watchers.length; t < e; t++)this._watchers[t].update(!0)
            }, t.prototype._initComputed = function () {
                var t = this.$options.computed;
                if (t)for (var i in t) {
                    var o = t[i], r = {enumerable: !0, configurable: !0};
                    "function" == typeof o ? (r.get = n(o, this), r.set = e) : (r.get = o.get ? o.cache !== !1 ? n(o.get, this) : v(o.get, this) : e, r.set = o.set ? v(o.set, this) : e), Object.defineProperty(this, i, r)
                }
            }, t.prototype._initMethods = function () {
                var t = this.$options.methods;
                if (t)for (var e in t)this[e] = v(t[e], this)
            }, t.prototype._initMeta = function () {
                var t = this.$options._meta;
                if (t)for (var e in t)Bt(this, e, t[e])
            }
        }

        function En(t) {
            function e(t, e) {
                for (var n, i, o, r = e.attributes, s = 0, a = r.length; s < a; s++)n = r[s].name, fs.test(n) && (n = n.replace(fs, ""), i = r[s].value, ne(i) && (i += ".apply(this, $arguments)"), o = (t._scope || t._context).$eval(i, !0), o._fromParent = !0, t.$on(n.replace(fs), o))
            }

            function n(t, e, n) {
                if (n) {
                    var o, r, s, a;
                    for (r in n)if (o = n[r], Jn(o))for (s = 0, a = o.length; s < a; s++)i(t, e, r, o[s]); else i(t, e, r, o)
                }
            }

            function i(t, e, n, o, r) {
                var s = typeof o;
                if ("function" === s) t[e](n, o, r); else if ("string" === s) {
                    var a = t.$options.methods, l = a && a[o];
                    l && t[e](n, l, r)
                } else o && "object" === s && i(t, e, n, o.handler, o)
            }

            function o() {
                this._isAttached || (this._isAttached = !0, this.$children.forEach(r))
            }

            function r(t) {
                !t._isAttached && tt(t.$el) && t._callHook("attached")
            }

            function s() {
                this._isAttached && (this._isAttached = !1, this.$children.forEach(a))
            }

            function a(t) {
                t._isAttached && !tt(t.$el) && t._callHook("detached")
            }

            t.prototype._initEvents = function () {
                var t = this.$options;
                t._asComponent && e(this, t.el), n(this, "$on", t.events), n(this, "$watch", t.watch)
            }, t.prototype._initDOMHooks = function () {
                this.$on("hook:attached", o), this.$on("hook:detached", s)
            }, t.prototype._callHook = function (t) {
                this.$emit("pre-hook:" + t);
                var e = this.$options[t];
                if (e)for (var n = 0, i = e.length; n < i; n++)e[n].call(this);
                this.$emit("hook:" + t)
            }
        }

        function Pn() {
        }

        function Mn(t, e, n, i, o, r) {
            this.vm = e, this.el = n, this.descriptor = t, this.name = t.name, this.expression = t.expression, this.arg = t.arg, this.modifiers = t.modifiers, this.filters = t.filters, this.literal = this.modifiers && this.modifiers.literal, this._locked = !1, this._bound = !1, this._listeners = null, this._host = i, this._scope = o, this._frag = r
        }

        function An(t) {
            t.prototype._updateRef = function (t) {
                var e = this.$options._ref;
                if (e) {
                    var n = (this._scope || this._context).$refs;
                    t ? n[e] === this && (n[e] = null) : n[e] = this
                }
            }, t.prototype._compile = function (t) {
                var e = this.$options, n = t;
                if (t = kn(t, e), this._initElement(t), 1 !== t.nodeType || null === et(t, "v-pre")) {
                    var i = this._context && this._context.$options, o = nn(t, e, i);
                    Sn(this, e._content);
                    var r, s = this.constructor;
                    e._linkerCachable && (r = s.linker, r || (r = s.linker = Ke(t, e)));
                    var a = o(this, t, this._scope), l = r ? r(this, t) : Ke(t, e)(this, t);
                    this._unlinkFn = function () {
                        a(), l(!0)
                    }, e.replace && lt(n, t), this._isCompiled = !0, this._callHook("compiled")
                }
            }, t.prototype._initElement = function (t) {
                Ct(t) ? (this._isFragment = !0, this.$el = this._fragmentStart = t.firstChild, this._fragmentEnd = t.lastChild, 3 === this._fragmentStart.nodeType && (this._fragmentStart.data = this._fragmentEnd.data = ""), this._fragment = t) : this.$el = t, this.$el.__vue__ = this, this._callHook("beforeCompile")
            }, t.prototype._bindDir = function (t, e, n, i, o) {
                this._directives.push(new Mn(t, this, e, n, i, o))
            }, t.prototype._destroy = function (t, e) {
                if (this._isBeingDestroyed)return void(e || this._cleanup());
                var n, i, o = this, r = function () {
                    !n || i || e || o._cleanup()
                };
                t && this.$el && (i = !0, this.$remove(function () {
                    i = !1, r()
                })), this._callHook("beforeDestroy"), this._isBeingDestroyed = !0;
                var s, a = this.$parent;
                for (a && !a._isBeingDestroyed && (a.$children.$remove(this), this._updateRef(!0)), s = this.$children.length; s--;)this.$children[s].$destroy();
                for (this._propsUnlinkFn && this._propsUnlinkFn(), this._unlinkFn && this._unlinkFn(), s = this._watchers.length; s--;)this._watchers[s].teardown();
                this.$el && (this.$el.__vue__ = null), n = !0, r()
            }, t.prototype._cleanup = function () {
                this._isDestroyed || (this._frag && this._frag.children.$remove(this), this._data && this._data.__ob__ && this._data.__ob__.removeVm(this), this.$el = this.$parent = this.$root = this.$children = this._watchers = this._context = this._scope = this._directives = null, this._isDestroyed = !0, this._callHook("destroyed"), this.$off())
            }
        }

        function Ln(t) {
            t.prototype._applyFilters = function (t, e, n, i) {
                var o, r, s, a, l, u, c, h, f;
                for (u = 0, c = n.length; u < c; u++)if (o = n[i ? c - u - 1 : u], r = Lt(this.$options, "filters", o.name, !0), r && (r = i ? r.write : r.read || r, "function" == typeof r)) {
                    if (s = i ? [t, e] : [t], l = i ? 2 : 1, o.args)for (h = 0, f = o.args.length; h < f; h++)a = o.args[h], s[h + l] = a.dynamic ? this.$get(a.value) : a.value;
                    t = r.apply(this, s)
                }
                return t
            }, t.prototype._resolveComponent = function (e, n) {
                var i;
                if (i = "function" == typeof e ? e : Lt(this.$options, "components", e, !0))if (i.options) n(i); else if (i.resolved) n(i.resolved); else if (i.requested) i.pendingCallbacks.push(n); else {
                    i.requested = !0;
                    var o = i.pendingCallbacks = [n];
                    i.call(this, function (e) {
                        _(e) && (e = t.extend(e)), i.resolved = e;
                        for (var n = 0, r = o.length; n < r; n++)o[n](e)
                    }, function (t) {
                    })
                }
            }
        }

        function Dn(t) {
            function e(t) {
                return JSON.parse(JSON.stringify(t))
            }

            t.prototype.$get = function (t, e) {
                var n = ee(t);
                if (n) {
                    if (e) {
                        var i = this;
                        return function () {
                            i.$arguments = m(arguments);
                            var t = n.get.call(i, i);
                            return i.$arguments = null, t
                        }
                    }
                    try {
                        return n.get.call(this, this)
                    } catch (o) {
                    }
                }
            }, t.prototype.$set = function (t, e) {
                var n = ee(t, !0);
                n && n.set && n.set.call(this, this, e)
            }, t.prototype.$delete = function (t) {
                o(this._data, t)
            }, t.prototype.$watch = function (t, e, n) {
                var i, o = this;
                "string" == typeof t && (i = H(t), t = i.expression);
                var r = new ae(o, t, e, {
                    deep: n && n.deep,
                    sync: n && n.sync,
                    filters: i && i.filters,
                    user: !n || n.user !== !1
                });
                return n && n.immediate && e.call(o, r.value), function () {
                    r.teardown()
                }
            }, t.prototype.$eval = function (t, e) {
                if (ds.test(t)) {
                    var n = H(t), i = this.$get(n.expression, e);
                    return n.filters ? this._applyFilters(i, null, n.filters) : i
                }
                return this.$get(t, e)
            }, t.prototype.$interpolate = function (t) {
                var e = z(t), n = this;
                return e ? 1 === e.length ? n.$eval(e[0].value) + "" : e.map(function (t) {
                            return t.tag ? n.$eval(t.value) : t.value
                        }).join("") : t
            }, t.prototype.$log = function (t) {
                var n = t ? Ut(this._data, t) : this._data;
                if (n && (n = e(n)), !t) {
                    var i;
                    for (i in this.$options.computed)n[i] = e(this[i]);
                    if (this._props)for (i in this._props)n[i] = e(this[i])
                }
            }
        }

        function Fn(t) {
            function e(t, e, i, o, r, s) {
                e = n(e);
                var a = !tt(e), l = o === !1 || a ? r : s, u = !a && !t._isAttached && !tt(t.$el);
                return t._isFragment ? (wt(t._fragmentStart, t._fragmentEnd, function (n) {
                        l(n, e, t)
                    }), i && i()) : l(t.$el, e, t, i), u && t._callHook("attached"), t
            }

            function n(t) {
                return "string" == typeof t ? document.querySelector(t) : t
            }

            function i(t, e, n, i) {
                e.appendChild(t), i && i()
            }

            function o(t, e, n, i) {
                ot(t, e), i && i()
            }

            function r(t, e, n) {
                st(t), n && n()
            }

            t.prototype.$nextTick = function (t) {
                fi(t, this)
            }, t.prototype.$appendTo = function (t, n, o) {
                return e(this, t, n, o, i, X)
            }, t.prototype.$prependTo = function (t, e, i) {
                return t = n(t), t.hasChildNodes() ? this.$before(t.firstChild, e, i) : this.$appendTo(t, e, i), this
            }, t.prototype.$before = function (t, n, i) {
                return e(this, t, n, i, o, K)
            }, t.prototype.$after = function (t, e, i) {
                return t = n(t), t.nextSibling ? this.$before(t.nextSibling, e, i) : this.$appendTo(t.parentNode, e, i), this
            }, t.prototype.$remove = function (t, e) {
                if (!this.$el.parentNode)return t && t();
                var n = this._isAttached && tt(this.$el);
                n || (e = !1);
                var i = this, o = function () {
                    n && i._callHook("detached"), t && t()
                };
                if (this._isFragment) kt(this._fragmentStart, this._fragmentEnd, this, this._fragment, o); else {
                    var s = e === !1 ? r : J;
                    s(this.$el, this, o)
                }
                return this
            }
        }

        function Rn(t) {
            function e(t, e, i) {
                var o = t.$parent;
                if (o && i && !n.test(e))for (; o;)o._eventsCount[e] = (o._eventsCount[e] || 0) + i, o = o.$parent
            }

            t.prototype.$on = function (t, n) {
                return (this._events[t] || (this._events[t] = [])).push(n), e(this, t, 1), this
            }, t.prototype.$once = function (t, e) {
                function n() {
                    i.$off(t, n), e.apply(this, arguments)
                }

                var i = this;
                return n.fn = e, this.$on(t, n), this
            }, t.prototype.$off = function (t, n) {
                var i;
                if (!arguments.length) {
                    if (this.$parent)for (t in this._events)i = this._events[t], i && e(this, t, -i.length);
                    return this._events = {}, this
                }
                if (i = this._events[t], !i)return this;
                if (1 === arguments.length)return e(this, t, -i.length), this._events[t] = null, this;
                for (var o, r = i.length; r--;)if (o = i[r], o === n || o.fn === n) {
                    e(this, t, -1), i.splice(r, 1);
                    break
                }
                return this
            }, t.prototype.$emit = function (t) {
                var e = "string" == typeof t;
                t = e ? t : t.name;
                var n = this._events[t], i = e || !n;
                if (n) {
                    n = n.length > 1 ? m(n) : n;
                    var o = e && n.some(function (t) {
                            return t._fromParent
                        });
                    o && (i = !1);
                    for (var r = m(arguments, 1), s = 0, a = n.length; s < a; s++) {
                        var l = n[s], u = l.apply(this, r);
                        u !== !0 || o && !l._fromParent || (i = !0)
                    }
                }
                return i
            }, t.prototype.$broadcast = function (t) {
                var e = "string" == typeof t;
                if (t = e ? t : t.name, this._eventsCount[t]) {
                    var n = this.$children, i = m(arguments);
                    e && (i[0] = {name: t, source: this});
                    for (var o = 0, r = n.length; o < r; o++) {
                        var s = n[o], a = s.$emit.apply(s, i);
                        a && s.$broadcast.apply(s, i)
                    }
                    return this
                }
            }, t.prototype.$dispatch = function (t) {
                var e = this.$emit.apply(this, arguments);
                if (e) {
                    var n = this.$parent, i = m(arguments);
                    for (i[0] = {name: t, source: this}; n;)e = n.$emit.apply(n, i), n = e ? n.$parent : null;
                    return this
                }
            };
            var n = /^hook:/
        }

        function In(t) {
            function e() {
                this._isAttached = !0, this._isReady = !0, this._callHook("ready")
            }

            t.prototype.$mount = function (t) {
                if (!this._isCompiled)return t = Q(t), t || (t = document.createElement("div")), this._compile(t), this._initDOMHooks(), tt(this.$el) ? (this._callHook("attached"), e.call(this)) : this.$once("hook:attached", e), this
            }, t.prototype.$destroy = function (t, e) {
                this._destroy(t, e)
            }, t.prototype.$compile = function (t, e, n, i) {
                return Ke(t, this.$options, !0)(this, t, e, n, i)
            }
        }

        function Nn(t) {
            this._init(t)
        }

        function $n(t, e, n) {
            return n = n ? parseInt(n, 10) : 0,
                e = u(e), "number" == typeof e ? t.slice(n, n + e) : t
        }

        function Bn(t, e, n) {
            if (t = ms(t), null == e)return t;
            if ("function" == typeof e)return t.filter(e);
            e = ("" + e).toLowerCase();
            for (var i, o, r, s, a = "in" === n ? 3 : 2, l = Array.prototype.concat.apply([], m(arguments, a)), u = [], c = 0, h = t.length; c < h; c++)if (i = t[c], r = i && i.$value || i, s = l.length) {
                for (; s--;)if (o = l[s], "$key" === o && Hn(i.$key, e) || Hn(Ut(r, o), e)) {
                    u.push(i);
                    break
                }
            } else Hn(i, e) && u.push(i);
            return u
        }

        function Wn(t) {
            function e(t, e, n) {
                var o = i[n];
                return o && ("$key" !== o && (b(t) && "$value" in t && (t = t.$value), b(e) && "$value" in e && (e = e.$value)), t = b(t) ? Ut(t, o) : t, e = b(e) ? Ut(e, o) : e), t === e ? 0 : t > e ? r : -r
            }

            var n = null, i = void 0;
            t = ms(t);
            var o = m(arguments, 1), r = o[o.length - 1];
            "number" == typeof r ? (r = r < 0 ? -1 : 1, o = o.length > 1 ? o.slice(0, -1) : o): r= 1;
            var s = o[0];
            return s ? ("function" == typeof s ? n = function (t, e) {
                        return s(t, e) * r
                    } : (i = Array.prototype.concat.apply([], o), n = function (t, o, r) {
                        return r = r || 0, r >= i.length - 1 ? e(t, o, r) : e(t, o, r) || n(t, o, r + 1)
                    }), t.slice().sort(n)) : t
        }

        function Hn(t, e) {
            var n;
            if (_(t)) {
                var i = Object.keys(t);
                for (n = i.length; n--;)if (Hn(t[i[n]], e))return !0
            } else if (Jn(t)) {
                for (n = t.length; n--;)if (Hn(t[n], e))return !0
            } else if (null != t)return t.toString().toLowerCase().indexOf(e) > -1
        }

        function Vn(t) {
            function e(t) {
                return new Function("return function " + y(t) + " (options) { this._init(options) }")()
            }

            t.options = {
                directives: Nr,
                elementDirectives: vs,
                filters: bs,
                transitions: {},
                components: {},
                partials: {},
                replace: !0
            }, t.util = no, t.config = Vi, t.set = i, t["delete"] = o, t.nextTick = fi, t.compiler = hs, t.FragmentFactory = we, t.internalDirectives = ns, t.parsers = {
                path: _o,
                text: Bi,
                template: Jo,
                directive: Di,
                expression: Do
            }, t.cid = 0;
            var n = 1;
            t.extend = function (t) {
                t = t || {};
                var i = this, o = 0 === i.cid;
                if (o && t._Ctor)return t._Ctor;
                var r = t.name || i.options.name, s = e(r || "VueComponent");
                return s.prototype = Object.create(i.prototype), s.prototype.constructor = s, s.cid = n++, s.options = At(i.options, t), s["super"] = i, s.extend = i.extend, Vi._assetTypes.forEach(function (t) {
                    s[t] = i[t]
                }), r && (s.options.components[r] = s), o && (t._Ctor = s), s
            }, t.use = function (t) {
                if (!t.installed) {
                    var e = m(arguments, 1);
                    return e.unshift(this), "function" == typeof t.install ? t.install.apply(t, e) : t.apply(null, e), t.installed = !0, this
                }
            }, t.mixin = function (e) {
                t.options = At(t.options, e)
            }, Vi._assetTypes.forEach(function (e) {
                t[e] = function (n, i) {
                    return i ? ("component" === e && _(i) && (i.name || (i.name = n), i = t.extend(i)), this.options[e + "s"][n] = i, i) : this.options[e + "s"][n]
                }
            }), g(t.transition, zi)
        }

        var Yn = Object.prototype.hasOwnProperty, zn = /^\s?(true|false|-?[\d\.]+|'[^']*'|"[^"]*")\s?$/, Un = /-(\w)/g, Gn = /([^-])([A-Z])/g, qn = /(?:^|[-_\/])(\w)/g, Xn = Object.prototype.toString, Kn = "[object Object]", Jn = Array.isArray, Zn = "__proto__" in {}, Qn = "undefined" != typeof window && "[object Object]" !== Object.prototype.toString.call(window), ti = Qn && window.__VUE_DEVTOOLS_GLOBAL_HOOK__, ei = Qn && window.navigator.userAgent.toLowerCase(), ni = ei && ei.indexOf("trident") > 0, ii = ei && ei.indexOf("msie 9.0") > 0, oi = ei && ei.indexOf("android") > 0, ri = ei && /iphone|ipad|ipod|ios/.test(ei), si = void 0, ai = void 0, li = void 0, ui = void 0;
        if (Qn && !ii) {
            var ci = void 0 === window.ontransitionend && void 0 !== window.onwebkittransitionend, hi = void 0 === window.onanimationend && void 0 !== window.onwebkitanimationend;
            si = ci ? "WebkitTransition" : "transition", ai = ci ? "webkitTransitionEnd" : "transitionend", li = hi ? "WebkitAnimation" : "animation", ui = hi ? "webkitAnimationEnd" : "animationend"
        }
        var fi = function () {
            function t() {
                n = !1;
                var t = e.slice(0);
                e.length = 0;
                for (var i = 0; i < t.length; i++)t[i]()
            }

            var e = [], n = !1, i = void 0;
            if ("undefined" != typeof Promise && S(Promise)) {
                var o = Promise.resolve(), r = function () {
                };
                i = function () {
                    o.then(t), ri && setTimeout(r)
                }
            } else if ("undefined" != typeof MutationObserver) {
                var s = 1, a = new MutationObserver(t), l = document.createTextNode(String(s));
                a.observe(l, {characterData: !0}), i = function () {
                    s = (s + 1) % 2, l.data = String(s)
                }
            } else i = setTimeout;
            return function (o, r) {
                var s = r ? function () {
                        o.call(r)
                    } : o;
                e.push(s), n || (n = !0, i(t, 0))
            }
        }(), di = void 0;
        "undefined" != typeof Set && S(Set) ? di = Set : (di = function () {
                this.set = Object.create(null)
            }, di.prototype.has = function (t) {
                return void 0 !== this.set[t]
            }, di.prototype.add = function (t) {
                this.set[t] = 1
            }, di.prototype.clear = function () {
                this.set = Object.create(null)
            });
        var pi = x.prototype;
        pi.put = function (t, e) {
            var n, i = this.get(t, !0);
            return i || (this.size === this.limit && (n = this.shift()), i = {key: t}, this._keymap[t] = i, this.tail ? (this.tail.newer = i, i.older = this.tail) : this.head = i, this.tail = i, this.size++), i.value = e, n
        }, pi.shift = function () {
            var t = this.head;
            return t && (this.head = this.head.newer, this.head.older = void 0, t.newer = t.older = void 0, this._keymap[t.key] = void 0, this.size--), t
        }, pi.get = function (t, e) {
            var n = this._keymap[t];
            if (void 0 !== n)return n === this.tail ? e ? n : n.value : (n.newer && (n === this.head && (this.head = n.newer), n.newer.older = n.older), n.older && (n.older.newer = n.newer), n.newer = void 0, n.older = this.tail, this.tail && (this.tail.newer = n), this.tail = n, e ? n : n.value)
        };
        var yi, vi, mi, gi, bi, _i, wi = new x(1e3), ki = /^in$|^-?\d+/, Ci = 0, ji = 1, Ti = 2, Si = 3, xi = 34, Oi = 39, Ei = 124, Pi = 92, Mi = 32, Ai = {
            91: 1,
            123: 1,
            40: 1
        }, Li = {
            91: 93,
            123: 125,
            40: 41
        }, Di = Object.freeze({parseDirective: H}), Fi = /[-.*+?^${}()|[\]\/\\]/g, Ri = void 0, Ii = void 0, Ni = void 0, $i = /[^|]\|[^|]/, Bi = Object.freeze({
            compileRegex: Y,
            parseText: z,
            tokensToExp: U
        }), Wi = ["{{", "}}"], Hi = ["{{{", "}}}"], Vi = Object.defineProperties({
            debug: !1,
            silent: !1,
            async: !0,
            warnExpressionErrors: !0,
            devtools: !1,
            _delimitersChanged: !0,
            _assetTypes: ["component", "directive", "elementDirective", "filter", "transition", "partial"],
            _propBindingModes: {ONE_WAY: 0, TWO_WAY: 1, ONE_TIME: 2},
            _maxUpdateCount: 100
        }, {
            delimiters: {
                get: function () {
                    return Wi
                }, set: function (t) {
                    Wi = t, Y()
                }, configurable: !0, enumerable: !0
            }, unsafeDelimiters: {
                get: function () {
                    return Hi
                }, set: function (t) {
                    Hi = t, Y()
                }, configurable: !0, enumerable: !0
            }
        }), Yi = void 0, zi = Object.freeze({
            appendWithTransition: X,
            beforeWithTransition: K,
            removeWithTransition: J,
            applyTransition: Z
        }), Ui = /^v-ref:/, Gi = /^(div|p|span|img|a|b|i|br|ul|ol|li|h1|h2|h3|h4|h5|h6|code|pre|table|th|td|tr|form|label|input|select|option|nav|article|section|header|footer)$/i, qi = /^(slot|partial|component)$/i, Xi = Vi.optionMergeStrategies = Object.create(null);
        Xi.data = function (t, e, n) {
            return n ? t || e ? function () {
                        var i = "function" == typeof e ? e.call(n) : e, o = "function" == typeof t ? t.call(n) : void 0;
                        return i ? xt(i, o) : o
                    } : void 0 : e ? "function" != typeof e ? t : t ? function () {
                                return xt(e.call(this), t.call(this))
                            } : e : t
        }, Xi.el = function (t, e, n) {
            if (n || !e || "function" == typeof e) {
                var i = e || t;
                return n && "function" == typeof i ? i.call(n) : i
            }
        }, Xi.init = Xi.created = Xi.ready = Xi.attached = Xi.detached = Xi.beforeCompile = Xi.compiled = Xi.beforeDestroy = Xi.destroyed = Xi.activate = function (t, e) {
            return e ? t ? t.concat(e) : Jn(e) ? e : [e] : t
        }, Vi._assetTypes.forEach(function (t) {
            Xi[t + "s"] = Ot
        }), Xi.watch = Xi.events = function (t, e) {
            if (!e)return t;
            if (!t)return e;
            var n = {};
            g(n, t);
            for (var i in e) {
                var o = n[i], r = e[i];
                o && !Jn(o) && (o = [o]), n[i] = o ? o.concat(r) : [r]
            }
            return n
        }, Xi.props = Xi.methods = Xi.computed = function (t, e) {
            if (!e)return t;
            if (!t)return e;
            var n = Object.create(null);
            return g(n, t), g(n, e), n
        };
        var Ki = function (t, e) {
            return void 0 === e ? t : e
        }, Ji = 0;
        Dt.target = null, Dt.prototype.addSub = function (t) {
            this.subs.push(t)
        }, Dt.prototype.removeSub = function (t) {
            this.subs.$remove(t)
        }, Dt.prototype.depend = function () {
            Dt.target.addDep(this)
        }, Dt.prototype.notify = function () {
            for (var t = m(this.subs), e = 0, n = t.length; e < n; e++)t[e].update()
        };
        var Zi = Array.prototype, Qi = Object.create(Zi);
        ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"].forEach(function (t) {
            var e = Zi[t];
            w(Qi, t, function () {
                for (var n = arguments.length, i = new Array(n); n--;)i[n] = arguments[n];
                var o, r = e.apply(this, i), s = this.__ob__;
                switch (t) {
                    case"push":
                        o = i;
                        break;
                    case"unshift":
                        o = i;
                        break;
                    case"splice":
                        o = i.slice(2)
                }
                return o && s.observeArray(o), s.dep.notify(), r
            })
        }), w(Zi, "$set", function (t, e) {
            return t >= this.length && (this.length = Number(t) + 1), this.splice(t, 1, e)[0]
        }), w(Zi, "$remove", function (t) {
            if (this.length) {
                var e = C(this, t);
                return e > -1 ? this.splice(e, 1) : void 0
            }
        });
        var to = Object.getOwnPropertyNames(Qi), eo = !0;
        Rt.prototype.walk = function (t) {
            for (var e = Object.keys(t), n = 0, i = e.length; n < i; n++)this.convert(e[n], t[e[n]])
        }, Rt.prototype.observeArray = function (t) {
            for (var e = 0, n = t.length; e < n; e++)$t(t[e])
        }, Rt.prototype.convert = function (t, e) {
            Bt(this.value, t, e)
        }, Rt.prototype.addVm = function (t) {
            (this.vms || (this.vms = [])).push(t)
        }, Rt.prototype.removeVm = function (t) {
            this.vms.$remove(t)
        };
        var no = Object.freeze({
            defineReactive: Bt,
            set: i,
            del: o,
            hasOwn: r,
            isLiteral: s,
            isReserved: a,
            _toString: l,
            toNumber: u,
            toBoolean: c,
            stripQuotes: h,
            camelize: f,
            hyphenate: p,
            classify: y,
            bind: v,
            toArray: m,
            extend: g,
            isObject: b,
            isPlainObject: _,
            def: w,
            debounce: k,
            indexOf: C,
            cancellable: j,
            looseEqual: T,
            isArray: Jn,
            hasProto: Zn,
            inBrowser: Qn,
            devtools: ti,
            isIE: ni,
            isIE9: ii,
            isAndroid: oi,
            isIOS: ri,
            get transitionProp() {
                return si
            },
            get transitionEndEvent() {
                return ai
            },
            get animationProp() {
                return li
            },
            get animationEndEvent() {
                return ui
            },
            nextTick: fi,
            get _Set() {
                return di
            },
            query: Q,
            inDoc: tt,
            getAttr: et,
            getBindAttr: nt,
            hasBindAttr: it,
            before: ot,
            after: rt,
            remove: st,
            prepend: at,
            replace: lt,
            on: ut,
            off: ct,
            setClass: ft,
            addClass: dt,
            removeClass: pt,
            extractContent: yt,
            trimNode: vt,
            isTemplate: gt,
            createAnchor: bt,
            findRef: _t,
            mapNodeRange: wt,
            removeNodeRange: kt,
            isFragment: Ct,
            getOuterHTML: jt,
            mergeOptions: At,
            resolveAsset: Lt,
            checkComponentAttr: Tt,
            commonTagRE: Gi,
            reservedTagRE: qi,
            get warn() {
                return Yi
            }
        }), io = 0, oo = new x(1e3), ro = 0, so = 1, ao = 2, lo = 3, uo = 0, co = 1, ho = 2, fo = 3, po = 4, yo = 5, vo = 6, mo = 7, go = 8, bo = [];
        bo[uo] = {ws: [uo], ident: [fo, ro], "[": [po], eof: [mo]}, bo[co] = {
            ws: [co],
            ".": [ho],
            "[": [po],
            eof: [mo]
        }, bo[ho] = {ws: [ho], ident: [fo, ro]}, bo[fo] = {
            ident: [fo, ro],
            0: [fo, ro],
            number: [fo, ro],
            ws: [co, so],
            ".": [ho, so],
            "[": [po, so],
            eof: [mo, so]
        }, bo[po] = {
            "'": [yo, ro],
            '"': [vo, ro],
            "[": [po, ao],
            "]": [co, lo],
            eof: go,
            "else": [po, ro]
        }, bo[yo] = {"'": [po, ro], eof: go, "else": [yo, ro]}, bo[vo] = {'"': [po, ro], eof: go, "else": [vo, ro]};
        var _o = Object.freeze({
            parsePath: zt,
            getPath: Ut,
            setPath: Gt
        }), wo = new x(1e3), ko = "Math,Date,this,true,false,null,undefined,Infinity,NaN,isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,parseInt,parseFloat", Co = new RegExp("^(" + ko.replace(/,/g, "\\b|") + "\\b)"), jo = "break,case,class,catch,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,in,instanceof,let,return,super,switch,throw,try,var,while,with,yield,enum,await,implements,package,protected,static,interface,private,public", To = new RegExp("^(" + jo.replace(/,/g, "\\b|") + "\\b)"), So = /\s/g, xo = /\n/g, Oo = /[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\"']|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g, Eo = /"(\d+)"/g, Po = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/, Mo = /[^\w$\.](?:[A-Za-z_$][\w$]*)/g, Ao = /^(?:true|false|null|undefined|Infinity|NaN)$/, Lo = [], Do = Object.freeze({
            parseExpression: ee,
            isSimplePath: ne
        }), Fo = [], Ro = [], Io = {}, No = {}, $o = !1, Bo = 0;
        ae.prototype.get = function () {
            this.beforeGet();
            var t, e = this.scope || this.vm;
            try {
                t = this.getter.call(e, e)
            } catch (n) {
            }
            return this.deep && le(t), this.preProcess && (t = this.preProcess(t)), this.filters && (t = e._applyFilters(t, null, this.filters, !1)), this.postProcess && (t = this.postProcess(t)), this.afterGet(), t
        }, ae.prototype.set = function (t) {
            var e = this.scope || this.vm;
            this.filters && (t = e._applyFilters(t, this.value, this.filters, !0));
            try {
                this.setter.call(e, e, t)
            } catch (n) {
            }
            var i = e.$forContext;
            if (i && i.alias === this.expression) {
                if (i.filters)return;
                i._withLock(function () {
                    e.$key ? i.rawValue[e.$key] = t : i.rawValue.$set(e.$index, t)
                })
            }
        }, ae.prototype.beforeGet = function () {
            Dt.target = this
        }, ae.prototype.addDep = function (t) {
            var e = t.id;
            this.newDepIds.has(e) || (this.newDepIds.add(e), this.newDeps.push(t), this.depIds.has(e) || t.addSub(this))
        }, ae.prototype.afterGet = function () {
            Dt.target = null;
            for (var t = this.deps.length; t--;) {
                var e = this.deps[t];
                this.newDepIds.has(e.id) || e.removeSub(this)
            }
            var n = this.depIds;
            this.depIds = this.newDepIds, this.newDepIds = n, this.newDepIds.clear(), n = this.deps, this.deps = this.newDeps, this.newDeps = n, this.newDeps.length = 0
        }, ae.prototype.update = function (t) {
            this.lazy ? this.dirty = !0 : this.sync || !Vi.async ? this.run() : (this.shallow = this.queued ? !!t && this.shallow : !!t, this.queued = !0, se(this))
        }, ae.prototype.run = function () {
            if (this.active) {
                var t = this.get();
                if (t !== this.value || (b(t) || this.deep) && !this.shallow) {
                    var e = this.value;
                    this.value = t;
                    this.prevError;
                    this.cb.call(this.vm, t, e)
                }
                this.queued = this.shallow = !1
            }
        }, ae.prototype.evaluate = function () {
            var t = Dt.target;
            this.value = this.get(), this.dirty = !1, Dt.target = t
        }, ae.prototype.depend = function () {
            for (var t = this.deps.length; t--;)this.deps[t].depend()
        }, ae.prototype.teardown = function () {
            if (this.active) {
                this.vm._isBeingDestroyed || this.vm._vForRemoving || this.vm._watchers.$remove(this);
                for (var t = this.deps.length; t--;)this.deps[t].removeSub(this);
                this.active = !1, this.vm = this.cb = this.value = null
            }
        };
        var Wo = new di, Ho = {
            bind: function () {
                this.attr = 3 === this.el.nodeType ? "data" : "textContent"
            }, update: function (t) {
                this.el[this.attr] = l(t)
            }
        }, Vo = new x(1e3), Yo = new x(1e3), zo = {
            efault: [0, "", ""],
            legend: [1, "<fieldset>", "</fieldset>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"]
        };
        zo.td = zo.th = [3, "<table><tbody><tr>", "</tr></tbody></table>"], zo.option = zo.optgroup = [1, '<select multiple="multiple">', "</select>"], zo.thead = zo.tbody = zo.colgroup = zo.caption = zo.tfoot = [1, "<table>", "</table>"], zo.g = zo.defs = zo.symbol = zo.use = zo.image = zo.text = zo.circle = zo.ellipse = zo.line = zo.path = zo.polygon = zo.polyline = zo.rect = [1, '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"version="1.1">', "</svg>"];
        var Uo = /<([\w:-]+)/, Go = /&#?\w+?;/, qo = /<!--/, Xo = function () {
            if (Qn) {
                var t = document.createElement("div");
                return t.innerHTML = "<template>1</template>", !t.cloneNode(!0).firstChild.innerHTML
            }
            return !1
        }(), Ko = function () {
            if (Qn) {
                var t = document.createElement("textarea");
                return t.placeholder = "t", "t" === t.cloneNode(!0).value
            }
            return !1
        }(), Jo = Object.freeze({cloneNode: fe, parseTemplate: de}), Zo = {
            bind: function () {
                8 === this.el.nodeType && (this.nodes = [], this.anchor = bt("v-html"), lt(this.el, this.anchor))
            }, update: function (t) {
                t = l(t), this.nodes ? this.swap(t) : this.el.innerHTML = t
            }, swap: function (t) {
                for (var e = this.nodes.length; e--;)st(this.nodes[e]);
                var n = de(t, !0, !0);
                this.nodes = m(n.childNodes), ot(n, this.anchor)
            }
        };
        pe.prototype.callHook = function (t) {
            var e, n;
            for (e = 0, n = this.childFrags.length; e < n; e++)this.childFrags[e].callHook(t);
            for (e = 0, n = this.children.length; e < n; e++)t(this.children[e])
        }, pe.prototype.beforeRemove = function () {
            var t, e;
            for (t = 0, e = this.childFrags.length; t < e; t++)this.childFrags[t].beforeRemove(!1);
            for (t = 0, e = this.children.length; t < e; t++)this.children[t].$destroy(!1, !0);
            var n = this.unlink.dirs;
            for (t = 0, e = n.length; t < e; t++)n[t]._watcher && n[t]._watcher.teardown()
        }, pe.prototype.destroy = function () {
            this.parentFrag && this.parentFrag.childFrags.$remove(this), this.node.__v_frag = null, this.unlink()
        };
        var Qo = new x(5e3);
        we.prototype.create = function (t, e, n) {
            var i = fe(this.template);
            return new pe(this.linker, this.vm, i, t, e, n)
        };
        var tr = 700, er = 800, nr = 850, ir = 1100, or = 1500, rr = 1500, sr = 1750, ar = 2100, lr = 2200, ur = 2300, cr = 0, hr = {
            priority: lr,
            terminal: !0,
            params: ["track-by", "stagger", "enter-stagger", "leave-stagger"],
            bind: function () {
                var t = this.expression.match(/(.*) (?:in|of) (.*)/);
                if (t) {
                    var e = t[1].match(/\((.*),(.*)\)/);
                    e ? (this.iterator = e[1].trim(), this.alias = e[2].trim()) : this.alias = t[1].trim(), this.expression = t[2]
                }
                if (this.alias) {
                    this.id = "__v-for__" + ++cr;
                    var n = this.el.tagName;
                    this.isOption = ("OPTION" === n || "OPTGROUP" === n) && "SELECT" === this.el.parentNode.tagName, this.start = bt("v-for-start"), this.end = bt("v-for-end"), lt(this.el, this.end), ot(this.start, this.end), this.cache = Object.create(null), this.factory = new we(this.vm, this.el)
                }
            },
            update: function (t) {
                this.diff(t), this.updateRef(), this.updateModel()
            },
            diff: function (t) {
                var e, n, i, o, s, a, l = t[0], u = this.fromObject = b(l) && r(l, "$key") && r(l, "$value"), c = this.params.trackBy, h = this.frags, f = this.frags = new Array(t.length), d = this.alias, p = this.iterator, y = this.start, v = this.end, m = tt(y), g = !h;
                for (e = 0, n = t.length; e < n; e++)l = t[e], o = u ? l.$key : null, s = u ? l.$value : l, a = !b(s), i = !g && this.getCachedFrag(s, e, o), i ? (i.reused = !0, i.scope.$index = e, o && (i.scope.$key = o), p && (i.scope[p] = null !== o ? o : e), (c || u || a) && Ft(function () {
                        i.scope[d] = s
                    })) : (i = this.create(s, d, e, o), i.fresh = !g), f[e] = i, g && i.before(v);
                if (!g) {
                    var _ = 0, w = h.length - f.length;
                    for (this.vm._vForRemoving = !0, e = 0, n = h.length; e < n; e++)i = h[e], i.reused || (this.deleteCachedFrag(i), this.remove(i, _++, w, m));
                    this.vm._vForRemoving = !1, _ && (this.vm._watchers = this.vm._watchers.filter(function (t) {
                        return t.active
                    }));
                    var k, C, j, T = 0;
                    for (e = 0, n = f.length; e < n; e++)i = f[e], k = f[e - 1], C = k ? k.staggerCb ? k.staggerAnchor : k.end || k.node : y, i.reused && !i.staggerCb ? (j = ke(i, y, this.id), j === k || j && ke(j, y, this.id) === k || this.move(i, C)) : this.insert(i, T++, C, m), i.reused = i.fresh = !1
                }
            },
            create: function (t, e, n, i) {
                var o = this._host, r = this._scope || this.vm, s = Object.create(r);
                s.$refs = Object.create(r.$refs), s.$els = Object.create(r.$els), s.$parent = r, s.$forContext = this, Ft(function () {
                    Bt(s, e, t)
                }), Bt(s, "$index", n), i ? Bt(s, "$key", i) : s.$key && w(s, "$key", null), this.iterator && Bt(s, this.iterator, null !== i ? i : n);
                var a = this.factory.create(o, s, this._frag);
                return a.forId = this.id, this.cacheFrag(t, a, n, i), a
            },
            updateRef: function () {
                var t = this.descriptor.ref;
                if (t) {
                    var e, n = (this._scope || this.vm).$refs;
                    this.fromObject ? (e = {}, this.frags.forEach(function (t) {
                            e[t.scope.$key] = Te(t)
                        })) : e = this.frags.map(Te), n[t] = e
                }
            },
            updateModel: function () {
                if (this.isOption) {
                    var t = this.start.parentNode, e = t && t.__v_model;
                    e && e.forceUpdate()
                }
            },
            insert: function (t, e, n, i) {
                t.staggerCb && (t.staggerCb.cancel(), t.staggerCb = null);
                var o = this.getStagger(t, e, null, "enter");
                if (i && o) {
                    var r = t.staggerAnchor;
                    r || (r = t.staggerAnchor = bt("stagger-anchor"), r.__v_frag = t), rt(r, n);
                    var s = t.staggerCb = j(function () {
                        t.staggerCb = null, t.before(r), st(r)
                    });
                    setTimeout(s, o)
                } else {
                    var a = n.nextSibling;
                    a || (rt(this.end, n), a = this.end), t.before(a)
                }
            },
            remove: function (t, e, n, i) {
                if (t.staggerCb)return t.staggerCb.cancel(), void(t.staggerCb = null);
                var o = this.getStagger(t, e, n, "leave");
                if (i && o) {
                    var r = t.staggerCb = j(function () {
                        t.staggerCb = null, t.remove()
                    });
                    setTimeout(r, o)
                } else t.remove()
            },
            move: function (t, e) {
                e.nextSibling || this.end.parentNode.appendChild(this.end), t.before(e.nextSibling, !1)
            },
            cacheFrag: function (t, e, n, i) {
                var o, s = this.params.trackBy, a = this.cache, l = !b(t);
                i || s || l ? (o = je(n, i, t, s), a[o] || (a[o] = e)) : (o = this.id, r(t, o) ? null === t[o] && (t[o] = e) : Object.isExtensible(t) && w(t, o, e)), e.raw = t
            },
            getCachedFrag: function (t, e, n) {
                var i, o = this.params.trackBy, r = !b(t);
                if (n || o || r) {
                    var s = je(e, n, t, o);
                    i = this.cache[s]
                } else i = t[this.id];
                return i && (i.reused || i.fresh), i
            },
            deleteCachedFrag: function (t) {
                var e = t.raw, n = this.params.trackBy, i = t.scope, o = i.$index, s = r(i, "$key") && i.$key, a = !b(e);
                if (n || s || a) {
                    var l = je(o, s, e, n);
                    this.cache[l] = null
                } else e[this.id] = null, t.raw = null
            },
            getStagger: function (t, e, n, i) {
                i += "Stagger";
                var o = t.node.__v_trans, r = o && o.hooks, s = r && (r[i] || r.stagger);
                return s ? s.call(t, e, n) : e * parseInt(this.params[i] || this.params.stagger, 10)
            },
            _preProcess: function (t) {
                return this.rawValue = t, t
            },
            _postProcess: function (t) {
                if (Jn(t))return t;
                if (_(t)) {
                    for (var e, n = Object.keys(t), i = n.length, o = new Array(i); i--;)e = n[i], o[i] = {
                        $key: e,
                        $value: t[e]
                    };
                    return o
                }
                return "number" != typeof t || isNaN(t) || (t = Ce(t)), t || []
            },
            unbind: function () {
                if (this.descriptor.ref && ((this._scope || this.vm).$refs[this.descriptor.ref] = null), this.frags)for (var t, e = this.frags.length; e--;)t = this.frags[e], this.deleteCachedFrag(t), t.destroy()
            }
        }, fr = {
            priority: ar, terminal: !0, bind: function () {
                var t = this.el;
                if (t.__vue__) this.invalid = !0; else {
                    var e = t.nextElementSibling;
                    e && null !== et(e, "v-else") && (st(e), this.elseEl = e), this.anchor = bt("v-if"), lt(t, this.anchor)
                }
            }, update: function (t) {
                this.invalid || (t ? this.frag || this.insert() : this.remove())
            }, insert: function () {
                this.elseFrag && (this.elseFrag.remove(), this.elseFrag = null), this.factory || (this.factory = new we(this.vm, this.el)), this.frag = this.factory.create(this._host, this._scope, this._frag), this.frag.before(this.anchor)
            }, remove: function () {
                this.frag && (this.frag.remove(), this.frag = null), this.elseEl && !this.elseFrag && (this.elseFactory || (this.elseFactory = new we(this.elseEl._context || this.vm, this.elseEl)), this.elseFrag = this.elseFactory.create(this._host, this._scope, this._frag), this.elseFrag.before(this.anchor))
            }, unbind: function () {
                this.frag && this.frag.destroy(), this.elseFrag && this.elseFrag.destroy()
            }
        }, dr = {
            bind: function () {
                var t = this.el.nextElementSibling;
                t && null !== et(t, "v-else") && (this.elseEl = t)
            }, update: function (t) {
                this.apply(this.el, t), this.elseEl && this.apply(this.elseEl, !t)
            }, apply: function (t, e) {
                function n() {
                    t.style.display = e ? "" : "none"
                }

                tt(t) ? Z(t, e ? 1 : -1, n, this.vm) : n()
            }
        }, pr = {
            bind: function () {
                var t = this, e = this.el, n = "range" === e.type, i = this.params.lazy, o = this.params.number, r = this.params.debounce, s = !1;
                if (oi || n || (this.on("compositionstart", function () {
                        s = !0
                    }), this.on("compositionend", function () {
                        s = !1, i || t.listener()
                    })), this.focused = !1, n || i || (this.on("focus", function () {
                        t.focused = !0
                    }), this.on("blur", function () {
                        t.focused = !1, t._frag && !t._frag.inserted || t.rawListener()
                    })), this.listener = this.rawListener = function () {
                        if (!s && t._bound) {
                            var i = o || n ? u(e.value) : e.value;
                            t.set(i), fi(function () {
                                t._bound && !t.focused && t.update(t._watcher.value)
                            })
                        }
                    }, r && (this.listener = k(this.listener, r)), this.hasjQuery = "function" == typeof jQuery, this.hasjQuery) {
                    var a = jQuery.fn.on ? "on" : "bind";
                    jQuery(e)[a]("change", this.rawListener), i || jQuery(e)[a]("input", this.listener)
                } else this.on("change", this.rawListener), i || this.on("input", this.listener);
                !i && ii && (this.on("cut", function () {
                    fi(t.listener)
                }), this.on("keyup", function (e) {
                    46 !== e.keyCode && 8 !== e.keyCode || t.listener()
                })), (e.hasAttribute("value") || "TEXTAREA" === e.tagName && e.value.trim()) && (this.afterBind = this.listener)
            }, update: function (t) {
                t = l(t), t !== this.el.value && (this.el.value = t)
            }, unbind: function () {
                var t = this.el;
                if (this.hasjQuery) {
                    var e = jQuery.fn.off ? "off" : "unbind";
                    jQuery(t)[e]("change", this.listener), jQuery(t)[e]("input", this.listener)
                }
            }
        }, yr = {
            bind: function () {
                var t = this, e = this.el;
                this.getValue = function () {
                    if (e.hasOwnProperty("_value"))return e._value;
                    var n = e.value;
                    return t.params.number && (n = u(n)), n
                }, this.listener = function () {
                    t.set(t.getValue())
                }, this.on("change", this.listener), e.hasAttribute("checked") && (this.afterBind = this.listener)
            }, update: function (t) {
                this.el.checked = T(t, this.getValue())
            }
        }, vr = {
            bind: function () {
                var t = this, e = this, n = this.el;
                this.forceUpdate = function () {
                    e._watcher && e.update(e._watcher.get())
                };
                var i = this.multiple = n.hasAttribute("multiple");
                this.listener = function () {
                    var t = Se(n, i);
                    t = e.params.number ? Jn(t) ? t.map(u) : u(t) : t, e.set(t)
                }, this.on("change", this.listener);
                var o = Se(n, i, !0);
                (i && o.length || !i && null !== o) && (this.afterBind = this.listener), this.vm.$on("hook:attached", function () {
                    fi(t.forceUpdate)
                }), tt(n) || fi(this.forceUpdate)
            }, update: function (t) {
                var e = this.el;
                e.selectedIndex = -1;
                for (var n, i, o = this.multiple && Jn(t), r = e.options, s = r.length; s--;)n = r[s], i = n.hasOwnProperty("_value") ? n._value : n.value, n.selected = o ? xe(t, i) > -1 : T(t, i)
            }, unbind: function () {
                this.vm.$off("hook:attached", this.forceUpdate)
            }
        }, mr = {
            bind: function () {
                function t() {
                    var t = n.checked;
                    return t && n.hasOwnProperty("_trueValue") ? n._trueValue : !t && n.hasOwnProperty("_falseValue") ? n._falseValue : t
                }

                var e = this, n = this.el;
                this.getValue = function () {
                    return n.hasOwnProperty("_value") ? n._value : e.params.number ? u(n.value) : n.value
                }, this.listener = function () {
                    var i = e._watcher.get();
                    if (Jn(i)) {
                        var o = e.getValue(), r = C(i, o);
                        n.checked ? r < 0 && e.set(i.concat(o)) : r > -1 && e.set(i.slice(0, r).concat(i.slice(r + 1)))
                    } else e.set(t())
                }, this.on("change", this.listener), n.hasAttribute("checked") && (this.afterBind = this.listener)
            }, update: function (t) {
                var e = this.el;
                Jn(t) ? e.checked = C(t, this.getValue()) > -1 : e.hasOwnProperty("_trueValue") ? e.checked = T(t, e._trueValue) : e.checked = !!t
            }
        }, gr = {text: pr, radio: yr, select: vr, checkbox: mr}, br = {
            priority: er,
            twoWay: !0,
            handlers: gr,
            params: ["lazy", "number", "debounce"],
            bind: function () {
                this.checkFilters(), this.hasRead && !this.hasWrite;
                var t, e = this.el, n = e.tagName;
                if ("INPUT" === n) t = gr[e.type] || gr.text; else if ("SELECT" === n) t = gr.select; else {
                    if ("TEXTAREA" !== n)return;
                    t = gr.text
                }
                e.__v_model = this, t.bind.call(this), this.update = t.update, this._unbind = t.unbind
            },
            checkFilters: function () {
                var t = this.filters;
                if (t)for (var e = t.length; e--;) {
                    var n = Lt(this.vm.$options, "filters", t[e].name);
                    ("function" == typeof n || n.read) && (this.hasRead = !0), n.write && (this.hasWrite = !0)
                }
            },
            unbind: function () {
                this.el.__v_model = null, this._unbind && this._unbind()
            }
        }, _r = {
            esc: 27,
            tab: 9,
            enter: 13,
            space: 32,
            "delete": [8, 46],
            up: 38,
            left: 37,
            right: 39,
            down: 40
        }, wr = {
            priority: tr, acceptStatement: !0, keyCodes: _r, bind: function () {
                if ("IFRAME" === this.el.tagName && "load" !== this.arg) {
                    var t = this;
                    this.iframeBind = function () {
                        ut(t.el.contentWindow, t.arg, t.handler, t.modifiers.capture)
                    }, this.on("load", this.iframeBind)
                }
            }, update: function (t) {
                if (this.descriptor.raw || (t = function () {
                    }), "function" == typeof t) {
                    this.modifiers.stop && (t = Ee(t)), this.modifiers.prevent && (t = Pe(t)), this.modifiers.self && (t = Me(t));
                    var e = Object.keys(this.modifiers).filter(function (t) {
                        return "stop" !== t && "prevent" !== t && "self" !== t && "capture" !== t
                    });
                    e.length && (t = Oe(t, e)), this.reset(), this.handler = t, this.iframeBind ? this.iframeBind() : ut(this.el, this.arg, this.handler, this.modifiers.capture)
                }
            }, reset: function () {
                var t = this.iframeBind ? this.el.contentWindow : this.el;
                this.handler && ct(t, this.arg, this.handler)
            }, unbind: function () {
                this.reset()
            }
        }, kr = ["-webkit-", "-moz-", "-ms-"], Cr = ["Webkit", "Moz", "ms"], jr = /!important;?$/, Tr = Object.create(null), Sr = null, xr = {
            deep: !0,
            update: function (t) {
                "string" == typeof t ? this.el.style.cssText = t : Jn(t) ? this.handleObject(t.reduce(g, {})) : this.handleObject(t || {})
            },
            handleObject: function (t) {
                var e, n, i = this.cache || (this.cache = {});
                for (e in i)e in t || (this.handleSingle(e, null), delete i[e]);
                for (e in t)n = t[e], n !== i[e] && (i[e] = n, this.handleSingle(e, n))
            },
            handleSingle: function (t, e) {
                if (t = Ae(t))if (null != e && (e += ""), e) {
                    var n = jr.test(e) ? "important" : "";
                    n ? (e = e.replace(jr, "").trim(), this.el.style.setProperty(t.kebab, e, n)) : this.el.style[t.camel] = e
                } else this.el.style[t.camel] = ""
            }
        }, Or = "http://www.w3.org/1999/xlink", Er = /^xlink:/, Pr = /^v-|^:|^@|^(?:is|transition|transition-mode|debounce|track-by|stagger|enter-stagger|leave-stagger)$/, Mr = /^(?:value|checked|selected|muted)$/, Ar = /^(?:draggable|contenteditable|spellcheck)$/, Lr = {
            value: "_value",
            "true-value": "_trueValue",
            "false-value": "_falseValue"
        }, Dr = {
            priority: nr, bind: function () {
                var t = this.arg, e = this.el.tagName;
                t || (this.deep = !0);
                var n = this.descriptor, i = n.interp;
                if (i) {
                    n.hasOneTime && (this.expression = U(i, this._scope || this.vm)), (Pr.test(t) || "name" === t && ("PARTIAL" === e || "SLOT" === e)) && (this.el.removeAttribute(t), this.invalid = !0)
                }
            }, update: function (t) {
                if (!this.invalid) {
                    var e = this.arg;
                    this.arg ? this.handleSingle(e, t) : this.handleObject(t || {})
                }
            }, handleObject: xr.handleObject, handleSingle: function (t, e) {
                var n = this.el, i = this.descriptor.interp;
                if (this.modifiers.camel && (t = f(t)), !i && Mr.test(t) && t in n) {
                    var o = "value" === t && null == e ? "" : e;
                    n[t] !== o && (n[t] = o)
                }
                var r = Lr[t];
                if (!i && r) {
                    n[r] = e;
                    var s = n.__v_model;
                    s && s.listener()
                }
                return "value" === t && "TEXTAREA" === n.tagName ? void n.removeAttribute(t) : void(Ar.test(t) ? n.setAttribute(t, e ? "true" : "false") : null != e && e !== !1 ? "class" === t ? (n.__v_trans && (e += " " + n.__v_trans.id + "-transition"), ft(n, e)) : Er.test(t) ? n.setAttributeNS(Or, t, e === !0 ? "" : e) : n.setAttribute(t, e === !0 ? "" : e) : n.removeAttribute(t))
            }
        }, Fr = {
            priority: or, bind: function () {
                if (this.arg) {
                    var t = this.id = f(this.arg), e = (this._scope || this.vm).$els;
                    r(e, t) ? e[t] = this.el : Bt(e, t, this.el)
                }
            }, unbind: function () {
                var t = (this._scope || this.vm).$els;
                t[this.id] === this.el && (t[this.id] = null)
            }
        }, Rr = {
            bind: function () {
            }
        }, Ir = {
            bind: function () {
                var t = this.el;
                this.vm.$once("pre-hook:compiled", function () {
                    t.removeAttribute("v-cloak")
                })
            }
        }, Nr = {
            text: Ho,
            html: Zo,
            "for": hr,
            "if": fr,
            show: dr,
            model: br,
            on: wr,
            bind: Dr,
            el: Fr,
            ref: Rr,
            cloak: Ir
        }, $r = {
            deep: !0, update: function (t) {
                t ? "string" == typeof t ? this.setClass(t.trim().split(/\s+/)) : this.setClass(De(t)) : this.cleanup()
            }, setClass: function (t) {
                this.cleanup(t);
                for (var e = 0, n = t.length; e < n; e++) {
                    var i = t[e];
                    i && Fe(this.el, i, dt)
                }
                this.prevKeys = t
            }, cleanup: function (t) {
                var e = this.prevKeys;
                if (e)for (var n = e.length; n--;) {
                    var i = e[n];
                    (!t || t.indexOf(i) < 0) && Fe(this.el, i, pt)
                }
            }
        }, Br = {
            priority: rr, params: ["keep-alive", "transition-mode", "inline-template"], bind: function () {
                this.el.__vue__ || (this.keepAlive = this.params.keepAlive, this.keepAlive && (this.cache = {}), this.params.inlineTemplate && (this.inlineTemplate = yt(this.el, !0)), this.pendingComponentCb = this.Component = null, this.pendingRemovals = 0, this.pendingRemovalCb = null, this.anchor = bt("v-component"), lt(this.el, this.anchor), this.el.removeAttribute("is"), this.el.removeAttribute(":is"), this.descriptor.ref && this.el.removeAttribute("v-ref:" + p(this.descriptor.ref)), this.literal && this.setComponent(this.expression))
            }, update: function (t) {
                this.literal || this.setComponent(t)
            }, setComponent: function (t, e) {
                if (this.invalidatePending(), t) {
                    var n = this;
                    this.resolveComponent(t, function () {
                        n.mountComponent(e)
                    })
                } else this.unbuild(!0), this.remove(this.childVM, e), this.childVM = null
            }, resolveComponent: function (t, e) {
                var n = this;
                this.pendingComponentCb = j(function (i) {
                    n.ComponentName = i.options.name || ("string" == typeof t ? t : null), n.Component = i, e()
                }), this.vm._resolveComponent(t, this.pendingComponentCb)
            }, mountComponent: function (t) {
                this.unbuild(!0);
                var e = this, n = this.Component.options.activate, i = this.getCached(), o = this.build();
                n && !i ? (this.waitingFor = o, Re(n, o, function () {
                        e.waitingFor === o && (e.waitingFor = null, e.transition(o, t))
                    })) : (i && o._updateRef(), this.transition(o, t))
            }, invalidatePending: function () {
                this.pendingComponentCb && (this.pendingComponentCb.cancel(), this.pendingComponentCb = null)
            }, build: function (t) {
                var e = this.getCached();
                if (e)return e;
                if (this.Component) {
                    var n = {
                        name: this.ComponentName,
                        el: fe(this.el),
                        template: this.inlineTemplate,
                        parent: this._host || this.vm,
                        _linkerCachable: !this.inlineTemplate,
                        _ref: this.descriptor.ref,
                        _asComponent: !0,
                        _isRouterView: this._isRouterView,
                        _context: this.vm,
                        _scope: this._scope,
                        _frag: this._frag
                    };
                    t && g(n, t);
                    var i = new this.Component(n);
                    return this.keepAlive && (this.cache[this.Component.cid] = i), i
                }
            }, getCached: function () {
                return this.keepAlive && this.cache[this.Component.cid]
            }, unbuild: function (t) {
                this.waitingFor && (this.keepAlive || this.waitingFor.$destroy(), this.waitingFor = null);
                var e = this.childVM;
                return !e || this.keepAlive ? void(e && (e._inactive = !0, e._updateRef(!0))) : void e.$destroy(!1, t)
            }, remove: function (t, e) {
                var n = this.keepAlive;
                if (t) {
                    this.pendingRemovals++, this.pendingRemovalCb = e;
                    var i = this;
                    t.$remove(function () {
                        i.pendingRemovals--, n || t._cleanup(), !i.pendingRemovals && i.pendingRemovalCb && (i.pendingRemovalCb(), i.pendingRemovalCb = null)
                    })
                } else e && e()
            }, transition: function (t, e) {
                var n = this, i = this.childVM;
                switch (i && (i._inactive = !0), t._inactive = !1, this.childVM = t, n.params.transitionMode) {
                    case"in-out":
                        t.$before(n.anchor, function () {
                            n.remove(i, e)
                        });
                        break;
                    case"out-in":
                        n.remove(i, function () {
                            t.$before(n.anchor, e)
                        });
                        break;
                    default:
                        n.remove(i), t.$before(n.anchor, e)
                }
            }, unbind: function () {
                if (this.invalidatePending(), this.unbuild(), this.cache) {
                    for (var t in this.cache)this.cache[t].$destroy();
                    this.cache = null
                }
            }
        }, Wr = Vi._propBindingModes, Hr = {}, Vr = /^[$_a-zA-Z]+[\w$]*$/, Yr = Vi._propBindingModes, zr = {
            bind: function () {
                var t = this.vm, e = t._context, n = this.descriptor.prop, i = n.path, o = n.parentPath, r = n.mode === Yr.TWO_WAY, s = this.parentWatcher = new ae(e, o, function (e) {
                    We(t, n, e)
                }, {twoWay: r, filters: n.filters, scope: this._scope});
                if (Be(t, n, s.value), r) {
                    var a = this;
                    t.$once("pre-hook:created", function () {
                        a.childWatcher = new ae(t, i, function (t) {
                            s.set(t)
                        }, {sync: !0})
                    })
                }
            }, unbind: function () {
                this.parentWatcher.teardown(), this.childWatcher && this.childWatcher.teardown()
            }
        }, Ur = [], Gr = !1, qr = "transition", Xr = "animation", Kr = si + "Duration", Jr = li + "Duration", Zr = Qn && window.requestAnimationFrame, Qr = Zr ? function (t) {
                Zr(function () {
                    Zr(t)
                })
            } : function (t) {
                setTimeout(t, 50)
            }, ts = qe.prototype;
        ts.enter = function (t, e) {
            this.cancelPending(), this.callHook("beforeEnter"), this.cb = e, dt(this.el, this.enterClass), t(), this.entered = !1, this.callHookWithCb("enter"), this.entered || (this.cancel = this.hooks && this.hooks.enterCancelled, Ue(this.enterNextTick))
        }, ts.enterNextTick = function () {
            var t = this;
            this.justEntered = !0, Qr(function () {
                t.justEntered = !1
            });
            var e = this.enterDone, n = this.getCssTransitionType(this.enterClass);
            this.pendingJsCb ? n === qr && pt(this.el, this.enterClass) : n === qr ? (pt(this.el, this.enterClass), this.setupCssCb(ai, e)) : n === Xr ? this.setupCssCb(ui, e) : e()
        }, ts.enterDone = function () {
            this.entered = !0, this.cancel = this.pendingJsCb = null, pt(this.el, this.enterClass), this.callHook("afterEnter"), this.cb && this.cb()
        }, ts.leave = function (t, e) {
            this.cancelPending(), this.callHook("beforeLeave"), this.op = t, this.cb = e,
                dt(this.el, this.leaveClass), this.left = !1, this.callHookWithCb("leave"), this.left || (this.cancel = this.hooks && this.hooks.leaveCancelled, this.op && !this.pendingJsCb && (this.justEntered ? this.leaveDone() : Ue(this.leaveNextTick)))
        }, ts.leaveNextTick = function () {
            var t = this.getCssTransitionType(this.leaveClass);
            if (t) {
                var e = t === qr ? ai : ui;
                this.setupCssCb(e, this.leaveDone)
            } else this.leaveDone()
        }, ts.leaveDone = function () {
            this.left = !0, this.cancel = this.pendingJsCb = null, this.op(), pt(this.el, this.leaveClass), this.callHook("afterLeave"), this.cb && this.cb(), this.op = null
        }, ts.cancelPending = function () {
            this.op = this.cb = null;
            var t = !1;
            this.pendingCssCb && (t = !0, ct(this.el, this.pendingCssEvent, this.pendingCssCb), this.pendingCssEvent = this.pendingCssCb = null), this.pendingJsCb && (t = !0, this.pendingJsCb.cancel(), this.pendingJsCb = null), t && (pt(this.el, this.enterClass), pt(this.el, this.leaveClass)), this.cancel && (this.cancel.call(this.vm, this.el), this.cancel = null)
        }, ts.callHook = function (t) {
            this.hooks && this.hooks[t] && this.hooks[t].call(this.vm, this.el)
        }, ts.callHookWithCb = function (t) {
            var e = this.hooks && this.hooks[t];
            e && (e.length > 1 && (this.pendingJsCb = j(this[t + "Done"])), e.call(this.vm, this.el, this.pendingJsCb))
        }, ts.getCssTransitionType = function (t) {
            if (!(!ai || document.hidden || this.hooks && this.hooks.css === !1 || Xe(this.el))) {
                var e = this.type || this.typeCache[t];
                if (e)return e;
                var n = this.el.style, i = window.getComputedStyle(this.el), o = n[Kr] || i[Kr];
                if (o && "0s" !== o) e = qr; else {
                    var r = n[Jr] || i[Jr];
                    r && "0s" !== r && (e = Xr)
                }
                return e && (this.typeCache[t] = e), e
            }
        }, ts.setupCssCb = function (t, e) {
            this.pendingCssEvent = t;
            var n = this, i = this.el, o = this.pendingCssCb = function (r) {
                r.target === i && (ct(i, t, o), n.pendingCssEvent = n.pendingCssCb = null, !n.pendingJsCb && e && e())
            };
            ut(i, t, o)
        };
        var es = {
            priority: ir, update: function (t, e) {
                var n = this.el, i = Lt(this.vm.$options, "transitions", t);
                t = t || "v", e = e || "v", n.__v_trans = new qe(n, t, i, this.vm), pt(n, e + "-transition"), dt(n, t + "-transition")
            }
        }, ns = {
            style: xr,
            "class": $r,
            component: Br,
            prop: zr,
            transition: es
        }, is = /^v-bind:|^:/, os = /^v-on:|^@/, rs = /^v-([^:]+)(?:$|:(.*)$)/, ss = /\.[^\.]+/g, as = /^(v-bind:|:)?transition$/, ls = 1e3, us = 2e3;
        yn.terminal = !0;
        var cs = /[^\w\-:\.]/, hs = Object.freeze({
            compile: Ke,
            compileAndLinkProps: en,
            compileRoot: nn,
            transclude: kn,
            resolveSlots: Sn
        }), fs = /^v-on:|^@/;
        Mn.prototype._bind = function () {
            var t = this.name, e = this.descriptor;
            if (("cloak" !== t || this.vm._isCompiled) && this.el && this.el.removeAttribute) {
                var n = e.attr || "v-" + t;
                this.el.removeAttribute(n)
            }
            var i = e.def;
            if ("function" == typeof i ? this.update = i : g(this, i), this._setupParams(), this.bind && this.bind(), this._bound = !0, this.literal) this.update && this.update(e.raw); else if ((this.expression || this.modifiers) && (this.update || this.twoWay) && !this._checkStatement()) {
                var o = this;
                this.update ? this._update = function (t, e) {
                        o._locked || o.update(t, e)
                    } : this._update = Pn;
                var r = this._preProcess ? v(this._preProcess, this) : null, s = this._postProcess ? v(this._postProcess, this) : null, a = this._watcher = new ae(this.vm, this.expression, this._update, {
                    filters: this.filters,
                    twoWay: this.twoWay,
                    deep: this.deep,
                    preProcess: r,
                    postProcess: s,
                    scope: this._scope
                });
                this.afterBind ? this.afterBind() : this.update && this.update(a.value)
            }
        }, Mn.prototype._setupParams = function () {
            if (this.params) {
                var t = this.params;
                this.params = Object.create(null);
                for (var e, n, i, o = t.length; o--;)e = p(t[o]), i = f(e), n = nt(this.el, e), null != n ? this._setupParamWatcher(i, n) : (n = et(this.el, e), null != n && (this.params[i] = "" === n || n))
            }
        }, Mn.prototype._setupParamWatcher = function (t, e) {
            var n = this, i = !1, o = (this._scope || this.vm).$watch(e, function (e, o) {
                if (n.params[t] = e, i) {
                    var r = n.paramWatchers && n.paramWatchers[t];
                    r && r.call(n, e, o)
                } else i = !0
            }, {immediate: !0, user: !1});
            (this._paramUnwatchFns || (this._paramUnwatchFns = [])).push(o)
        }, Mn.prototype._checkStatement = function () {
            var t = this.expression;
            if (t && this.acceptStatement && !ne(t)) {
                var e = ee(t).get, n = this._scope || this.vm, i = function (t) {
                    n.$event = t, e.call(n, n), n.$event = null
                };
                return this.filters && (i = n._applyFilters(i, null, this.filters)), this.update(i), !0
            }
        }, Mn.prototype.set = function (t) {
            this.twoWay && this._withLock(function () {
                this._watcher.set(t)
            })
        }, Mn.prototype._withLock = function (t) {
            var e = this;
            e._locked = !0, t.call(e), fi(function () {
                e._locked = !1
            })
        }, Mn.prototype.on = function (t, e, n) {
            ut(this.el, t, e, n), (this._listeners || (this._listeners = [])).push([t, e])
        }, Mn.prototype._teardown = function () {
            if (this._bound) {
                this._bound = !1, this.unbind && this.unbind(), this._watcher && this._watcher.teardown();
                var t, e = this._listeners;
                if (e)for (t = e.length; t--;)ct(this.el, e[t][0], e[t][1]);
                var n = this._paramUnwatchFns;
                if (n)for (t = n.length; t--;)n[t]();
                this.vm = this.el = this._watcher = this._listeners = null
            }
        };
        var ds = /[^|]\|[^|]/;
        Wt(Nn), On(Nn), En(Nn), An(Nn), Ln(Nn), Dn(Nn), Fn(Nn), Rn(Nn), In(Nn);
        var ps = {
            priority: ur, params: ["name"], bind: function () {
                var t = this.params.name || "default", e = this.vm._slotContents && this.vm._slotContents[t];
                e && e.hasChildNodes() ? this.compile(e.cloneNode(!0), this.vm._context, this.vm) : this.fallback()
            }, compile: function (t, e, n) {
                if (t && e) {
                    if (this.el.hasChildNodes() && 1 === t.childNodes.length && 1 === t.childNodes[0].nodeType && t.childNodes[0].hasAttribute("v-if")) {
                        var i = document.createElement("template");
                        i.setAttribute("v-else", ""), i.innerHTML = this.el.innerHTML, i._context = this.vm, t.appendChild(i)
                    }
                    var o = n ? n._scope : this._scope;
                    this.unlink = e.$compile(t, n, o, this._frag)
                }
                t ? lt(this.el, t) : st(this.el)
            }, fallback: function () {
                this.compile(yt(this.el, !0), this.vm)
            }, unbind: function () {
                this.unlink && this.unlink()
            }
        }, ys = {
            priority: sr, params: ["name"], paramWatchers: {
                name: function (t) {
                    fr.remove.call(this), t && this.insert(t)
                }
            }, bind: function () {
                this.anchor = bt("v-partial"), lt(this.el, this.anchor), this.insert(this.params.name)
            }, insert: function (t) {
                var e = Lt(this.vm.$options, "partials", t, !0);
                e && (this.factory = new we(this.vm, e), fr.insert.call(this))
            }, unbind: function () {
                this.frag && this.frag.destroy()
            }
        }, vs = {slot: ps, partial: ys}, ms = hr._postProcess, gs = /(\d{3})(?=\d)/g, bs = {
            orderBy: Wn,
            filterBy: Bn,
            limitBy: $n,
            json: {
                read: function (t, e) {
                    return "string" == typeof t ? t : JSON.stringify(t, null, arguments.length > 1 ? e : 2)
                }, write: function (t) {
                    try {
                        return JSON.parse(t)
                    } catch (e) {
                        return t
                    }
                }
            },
            capitalize: function (t) {
                return t || 0 === t ? (t = t.toString(), t.charAt(0).toUpperCase() + t.slice(1)) : ""
            },
            uppercase: function (t) {
                return t || 0 === t ? t.toString().toUpperCase() : ""
            },
            lowercase: function (t) {
                return t || 0 === t ? t.toString().toLowerCase() : ""
            },
            currency: function (t, e, n) {
                if (t = parseFloat(t), !isFinite(t) || !t && 0 !== t)return "";
                e = null != e ? e : "$", n = null != n ? n : 2;
                var i = Math.abs(t).toFixed(n), o = n ? i.slice(0, -1 - n) : i, r = o.length % 3, s = r > 0 ? o.slice(0, r) + (o.length > 3 ? "," : "") : "", a = n ? i.slice(-1 - n) : "", l = t < 0 ? "-" : "";
                return l + e + s + o.slice(r).replace(gs, "$1,") + a
            },
            pluralize: function (t) {
                var e = m(arguments, 1), n = e.length;
                if (n > 1) {
                    var i = t % 10 - 1;
                    return i in e ? e[i] : e[n - 1]
                }
                return e[0] + (1 === t ? "" : "s")
            },
            debounce: function (t, e) {
                if (t)return e || (e = 300), k(t, e)
            }
        };
        Vn(Nn), Nn.version = "1.0.28", setTimeout(function () {
            Vi.devtools && ti && ti.emit("init", Nn)
        }, 0), e.exports = Nn
    }, {}],
    164: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            for (var n = 0; n < t.length; n++)e(t[n])
        }

        function o(t) {
            for (var e in t)if (t.hasOwnProperty(e))return !1;
            return !0
        }

        function r(t, e, n) {
            var i = t;
            return h(e) ? (n = e, "string" == typeof t && (i = {uri: t})) : i = d(e, {uri: t}), i.callback = n, i
        }

        function s(t, e, n) {
            return e = r(t, e, n), a(e)
        }

        function a(t) {
            function e() {
                4 === u.readyState && r()
            }

            function n() {
                var t = void 0;
                if (u.response ? t = u.response : "text" !== u.responseType && u.responseType || (t = u.responseText || u.responseXML), _)try {
                    t = JSON.parse(t)
                } catch (e) {
                }
                return t
            }

            function i(t) {
                clearTimeout(p), t instanceof Error || (t = new Error("" + (t || "Unknown XMLHttpRequest Error"))), t.statusCode = 0, a(t, l)
            }

            function r() {
                if (!d) {
                    var e;
                    clearTimeout(p), e = t.useXDR && void 0 === u.status ? 200 : 1223 === u.status ? 204 : u.status;
                    var i = l, o = null;
                    0 !== e ? (i = {
                            body: n(),
                            statusCode: e,
                            method: v,
                            headers: {},
                            url: y,
                            rawRequest: u
                        }, u.getAllResponseHeaders && (i.headers = f(u.getAllResponseHeaders()))) : o = new Error("Internal XMLHttpRequest Error"), a(o, i, i.body)
                }
            }

            var a = t.callback;
            if ("undefined" == typeof a)throw new Error("callback argument missing");
            a = c(a);
            var l = {body: void 0, headers: {}, statusCode: 0, method: v, url: y, rawRequest: u}, u = t.xhr || null;
            u || (u = t.cors || t.useXDR ? new s.XDomainRequest : new s.XMLHttpRequest);
            var h, d, p, y = u.url = t.uri || t.url, v = u.method = t.method || "GET", m = t.body || t.data || null, g = u.headers = t.headers || {}, b = !!t.sync, _ = !1;
            if ("json" in t && (_ = !0, g.accept || g.Accept || (g.Accept = "application/json"), "GET" !== v && "HEAD" !== v && (g["content-type"] || g["Content-Type"] || (g["Content-Type"] = "application/json"), m = JSON.stringify(t.json))), u.onreadystatechange = e, u.onload = r, u.onerror = i, u.onprogress = function () {
                }, u.ontimeout = i, u.open(v, y, !b, t.username, t.password), b || (u.withCredentials = !!t.withCredentials), !b && t.timeout > 0 && (p = setTimeout(function () {
                    d = !0, u.abort("timeout");
                    var t = new Error("XMLHttpRequest timeout");
                    t.code = "ETIMEDOUT", i(t)
                }, t.timeout)), u.setRequestHeader)for (h in g)g.hasOwnProperty(h) && u.setRequestHeader(h, g[h]); else if (t.headers && !o(t.headers))throw new Error("Headers cannot be set on an XDomainRequest object");
            return "responseType" in t && (u.responseType = t.responseType), "beforeSend" in t && "function" == typeof t.beforeSend && t.beforeSend(u), u.send(m), u
        }

        function l() {
        }

        var u = t("global/window"), c = t("once"), h = t("is-function"), f = t("parse-headers"), d = t("xtend");
        e.exports = s, s.XMLHttpRequest = u.XMLHttpRequest || l, s.XDomainRequest = "withCredentials" in new s.XMLHttpRequest ? s.XMLHttpRequest : u.XDomainRequest, i(["get", "put", "post", "patch", "head", "delete"], function (t) {
            s["delete" === t ? "del" : t] = function (e, n, i) {
                return n = r(e, n, i), n.method = t.toUpperCase(), a(n)
            }
        })
    }, {"global/window": 10, "is-function": 11, once: 165, "parse-headers": 59, xtend: 166}],
    165: [function (t, e, n) {
        function i(t) {
            var e = !1;
            return function () {
                if (!e)return e = !0, t.apply(this, arguments)
            }
        }

        e.exports = i, i.proto = i(function () {
            Object.defineProperty(Function.prototype, "once", {
                value: function () {
                    return i(this)
                }, configurable: !0
            })
        })
    }, {}],
    166: [function (t, e, n) {
        function i() {
            for (var t = {}, e = 0; e < arguments.length; e++) {
                var n = arguments[e];
                for (var i in n)o.call(n, i) && (t[i] = n[i])
            }
            return t
        }

        e.exports = i;
        var o = Object.prototype.hasOwnProperty
    }, {}],
    167: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = function () {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
                }
            }

            return function (e, n, i) {
                return n && t(e.prototype, n), i && t(e, i), e
            }
        }(), r = function () {
            function t(e) {
                var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "Laracasts\\Video";
                i(this, t), this.lessonId = ~~e, this.lessonType = n
            }

            return o(t, [{
                key: "toggleWatchLater", value: function () {
                    $.ajax({
                        type: "POST",
                        url: "/saves",
                        data: {lessonType: this.lessonType, lessonId: this.lessonId, _token: window.Form.token},
                        dataType: "json"
                    }), flash("Watchlist Updated!")
                }
            }, {
                key: "toggleFavorite", value: function () {
                    $.ajax({
                        type: "POST",
                        url: "/lessons/" + this.lessonId + "/favorite",
                        data: {lesson_type: this.lessonType, lessonId: this.lessonId, _token: window.Form.token},
                        dataType: "json"
                    }), flash("Favorites List Updated!")
                }
            }, {
                key: "toggleCompletion", value: function () {
                    $.ajax({
                        type: "POST",
                        url: "/lessons/complete",
                        data: {lessonType: this.lessonType, lessonId: this.lessonId, _token: window.Form.token},
                        dataType: "json"
                    }), flash("Completion Status Updated!")
                }
            }, {
                key: "clearAllInProgress", value: function () {
                    $.ajax({
                        type: "DELETE",
                        url: "/api/watching",
                        data: {_token: window.Form.token},
                        dataType: "json"
                    }), flash("All of your in progress lessons have now been cleared.")
                }
            }]), t
        }();
        n["default"] = r
    }, {}],
    168: [function (t, e, n) {
        "use strict";
        function i(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = function () {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
                }
            }

            return function (e, n, i) {
                return n && t(e.prototype, n), i && t(e, i), e
            }
        }(), r = function () {
            function t() {
                var e = this;
                i(this, t), Stripe.setPublishableKey(LARACASTS.stripeKey), this.stripe = StripeCheckout.configure({
                    key: LARACASTS.stripeKey,
                    image: "https://laracasts.s3.amazonaws.com/assets/laracasts-avatar.png",
                    locale: "auto",
                    zipCode: !0,
                    allowRememberMe: !1,
                    alipay: !0,
                    alipayReusable: !0,
                    token: function (t) {
                        return e.onComplete(t.id)
                    }
                })
            }

            return o(t, [{
                key: "detectApplePaySupport", value: function (t) {
                    return Stripe.applePay.checkAvailability(function (e) {
                        return e && t()
                    })
                }
            }, {
                key: "openModal", value: function (t) {
                    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                    t && (e.amount = 100 * t.cost, e.description = t.description + ": $" + t.cost), this.stripe.open(e)
                }
            }, {
                key: "openApplePayModal", value: function (t, e, n) {
                    var i = this, o = Stripe.applePay.buildSession({
                        countryCode: "US",
                        currencyCode: "USD",
                        total: {label: "Laracasts", amount: t.cost}
                    }, function (t, e) {
                        e(ApplePaySession.STATUS_SUCCESS), i.onComplete(t.token.id)
                    }, function (t) {
                        completion(ApplePaySession.STATUS_FAILURE)
                    });
                    o.begin()
                }
            }, {
                key: "afterCardIsAccepted", value: function (t) {
                    this.onComplete = t
                }
            }]), t
        }();
        n["default"] = r
    }, {}],
    169: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("./views/all-view"), r = i(o), s = t("./views/community-view"), a = i(s), l = t("./views/lesson-view"), u = i(l), c = t("./views/series-view"), h = i(c), f = t("./views/forum-view"), d = i(f), p = t("./views/profile-view"), y = i(p), v = t("./views/signup-view"), m = i(v), g = t("./views/team-view"), b = i(g), _ = t("./views/checkout-view"), w = i(_), k = t("./views/settings/add-card-view"), C = i(k), j = t("./views/settings/coupon-view"), T = i(j), S = t("./views/settings/notifications-view"), x = i(S), O = t("./views/sale-view"), E = i(O), P = t("./views/dashboard-view"), M = i(P), A = t("./components/forum/Notifications.vue"), L = i(A), D = t("./Requests"), F = i(D);
        n["default"] = {
            el: "#root",
            components: {
                ForumView: d["default"],
                ProfileView: y["default"],
                SignupView: m["default"],
                AllView: r["default"],
                CommunityView: a["default"],
                LessonView: u["default"],
                SeriesView: h["default"],
                TeamView: b["default"],
                CheckoutView: w["default"],
                AddCardView: C["default"],
                CouponView: T["default"],
                ManageNotificationsView: x["default"],
                SaleView: E["default"],
                DashboardView: M["default"],
                Notification: L["default"]
            },
            ready: function () {
                this.limitSubmitsToOneClick(), this.registerClassToggling()
            },
            events: {
                WatchLater: function (t) {
                    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "Laracasts\\Video";
                    new F["default"](t, e).toggleWatchLater()
                }, Favorite: function (t) {
                    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "Laracasts\\Video";
                    new F["default"](t, e).toggleFavorite()
                }, Complete: function (t, e) {
                    new F["default"](t).toggleCompletion(), this.$broadcast("LessonCompleted", t, e)
                }, Login: function () {
                    this.$broadcast("Login")
                }, ClearAllInProgress: function () {
                    (new F["default"]).clearAllInProgress(), this.$broadcast("InProgressLessonsHaveBeenCleared")
                }
            },
            methods: {
                limitSubmitsToOneClick: function () {
                    $("input[data-single-click], button[data-single-click]").parents("form").on("submit", function () {
                        $(this).find("[type=submit]").prop("disabled", !0)
                    })
                }, registerClassToggling: function () {
                    $(".button[data-toggles]").on("click", function () {
                        var t = $(this).data("toggles");
                        $(this).toggleClass(t)
                    })
                }, toggleUserNotifications: function () {
                    this.$broadcast("ToggleUserNotifications")
                }, toggleNav: function (t) {
                    t.stopPropagation();
                    var e = $(".nav-bottom").find(".nav-menu");
                    e.toggle(), $("body").one("click, touchstart", function (t) {
                        $(t.target).closest(".nav-bottom-link, form").length || e.toggle()
                    })
                }
            }
        }
    }, {
        "./Requests": 167,
        "./components/forum/Notifications.vue": 186,
        "./views/all-view": 199,
        "./views/checkout-view": 200,
        "./views/community-view": 201,
        "./views/dashboard-view": 202,
        "./views/forum-view": 203,
        "./views/lesson-view": 204,
        "./views/profile-view": 205,
        "./views/sale-view": 206,
        "./views/series-view": 207,
        "./views/settings/add-card-view": 208,
        "./views/settings/coupon-view": 209,
        "./views/settings/notifications-view": 210,
        "./views/signup-view": 211,
        "./views/team-view": 212
    }],
    170: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../utilities/Form"), r = i(o);
        n["default"] = {
            props: {
                "class": {},
                preventDefault: {type: Boolean, "default": !0},
                remote: {type: Boolean, "default": !1},
                wide: !1
            }, data: function () {
                return {loading: !1}
            }, ready: function () {
                var t = this;
                $(this.$el).closest("form").on("submit", function (e) {
                    t.loading = !0, (t.preventDefault || t.remote) && e.preventDefault(), t.remote && r["default"].submit(e.target, function (e) {
                        e.message && flash(e.message), t.loading = !1, t.$emit("complete", this, e)
                    })
                })
            }, events: {
                AjaxCompleted: function (t) {
                    this.loading = !1
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = "<button type=submit :class=\"['button', 'is-outlined', wide ? 'is-fullwidth' : '', class || '', loading ? 'is-loading': '']\"><slot></slot></button>"
    }, {"../utilities/Form": 197}],
    171: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {}, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div class="carousel-cell column is-4"><slot></slot></div>'
    }, {}],
    172: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {}, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div class=container><div class=columns><div class=column><div class=carousel data-flickity="{ &quot;cellAlign&quot;: &quot;left&quot;, &quot;wrapAround&quot;: true, &quot;lazyLoad&quot;: 2, &quot;pageDots&quot;: true }"><slot></slot></div></div></div></div>'
    }, {}],
    173: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {active: !1}
            }, methods: {
                toggleActivated: function () {
                    this.active = !this.active, this.active && this.closeMenuIfClickedOutside()
                }, closeMenuIfClickedOutside: function () {
                    var t = this;
                    setTimeout(function () {
                        $(document).one("click, touchstart", function (e) {
                            $(e.target).closest(".dropdown").length || (t.active = !1)
                        })
                    }, 250)
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div class="dropdown {{ active ? \'is-active\' : \'\' }} w-100"><div class=is-vertically-centered><slot name=heading-before></slot><button class="button has-dropdown w-100" @click=toggleActivated><slot name=heading></slot></button></div><div class=dropdown-menu style="min-width: 250px"><slot name=dropdown-links></slot></div></div>'
    }, {}],
    174: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("Chart.js"), r = i(o);
        n["default"] = {
            props: ["type", "keys", "values"], watch: {
                values: function () {
                    this.makeGraph()
                }
            }, ready: function () {
                this.values.length && this.makeGraph()
            }, methods: {
                makeGraph: function () {
                    var t = this.$el.getContext("2d"), e = this.graphType();
                    this.$el.width = $(this.$el).parent().width(), new r["default"](t)[e](this.graphData(), {
                        pointDot: !0,
                        bezierCurve: !1
                    })
                }, graphData: function () {
                    return {
                        labels: this.keys,
                        datasets: [{
                            fillColor: "#fcb85b",
                            strokeColor: "#da9c48",
                            pointColor: "rgba(220,220,220,1)",
                            pointStrokeColor: "#fff",
                            pointHighlightFill: "#fff",
                            pointHighlightStroke: "rgba(220,220,220,1)",
                            data: this.values
                        }]
                    }
                }, graphType: function () {
                    return {line: "Line", bar: "Bar"}[this.type]
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = "<canvas id=my-canvas height=400></canvas>"
    }, {"Chart.js": 1}],
    175: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: ["token"], data: function () {
                return {showLoginModal: !1, isValid: !0, validationMessage: ""}
            }, events: {
                Login: function () {
                    this.showLoginModal = !0
                }
            }, methods: {
                doLogin: function (t) {
                    Form.submit(t.target, this.onLoggedIn, this.onFailedToLogin), t.preventDefault()
                }, onLoggedIn: function () {
                    location.reload()
                }, onFailedToLogin: function (t) {
                    this.isValid = !1, this.validationMessage = t.errors.auth, this.$broadcast("AjaxCompleted")
                }, clearValidation: function () {
                    this.isValid = !0, this.validationMessage = ""
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<modal :show.sync=showLoginModal size=medium><template slot=header>Welcome Back!</template><div slot=body><form role=form method=post action=/sessions @submit=doLogin><input type=hidden name=_token value="{{ token }}"><div class=control><input type=email id=email name=email class=input placeholder=Email @keydown=clearValidation required></div><div class=control><input type=password id=password name=password class=input placeholder=Password @keydown=clearValidation required></div><button type=submit class="button is-primary is-submit">Log In</button><div class=control v-show="! isValid"><span class="help is-danger">{{ validationMessage }}</span></div></form></div><template slot=footer><a href=/join class="is-muted in-caps mr-a fs-smaller">Sign Up! </a><a href=/password_resets/create class="is-muted in-caps fs-smaller">Forgot Your Password?</a></template></modal>'
    }, {}],
    176: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {
                show: {required: !0, twoWay: !0},
                size: {"default": "small"}
            }, ready: function () {
                this.closeForEscapeOrClick()
            }, methods: {
                closeForEscapeOrClick: function () {
                    var t = this;
                    $(document).on("keydown", function (e) {
                        27 == e.keyCode && (t.show = !1)
                    })
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div class="modal is-{{ size }} {{ show ? \'is-active fade-in is-fast\' : \'\' }}"><div class=modal-background @click="show = false"></div><div class=modal-card><header class="modal-card-head is-primary"><h4 class=modal-card-title><slot name=header></slot></h4><button class=delete @click="show = false"></button></header><div class=modal-card-body><slot name=body></slot></div><footer class=modal-card-foot><slot name=footer></slot></footer></div><button class=modal-close @click="show = false"></button></div>'
    }, {}],
    177: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {show: !0}
            }, methods: {
                hideForm: function () {
                    this.show = !1
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form id=newsletter-form method=POST action=/newsletters/subscribe v-show=show><div class="newsletter-signup control has-addons wow lightSpeedIn"><input class=input type=email name=email placeholder="Enter Your Email" autocomplete=off required><ajax-button remote="" @complete=hideForm class=is-primary>Subscribe</ajax-button></div></form>'
    }, {}],
    178: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {through: {"default": "everything"}},
            data: function () {
                return {placeholder: "WHAT WILL YOU LEARN NEXT?"}
            },
            ready: function () {
                this.client = algoliasearch("1Z405N45FC", "6c44626a6a8c21778291dc05232905e6"), this[this.through]()
            },
            methods: {
                everything: function () {
                    var t = this.client.initIndex("lessons"), e = this.client.initIndex("forum");
                    autocomplete("#search", {hint: !0}, [{
                        source: autocomplete.sources.hits(t, {hitsPerPage: 5}),
                        displayKey: "title",
                        templates: {
                            header: '<div class="category">Lesson Suggestions</div>', suggestion: function (t) {
                                return t._highlightResult.title.value
                            }
                        }
                    }, {
                        source: autocomplete.sources.hits(e, {hitsPerPage: 5}),
                        displayKey: "title",
                        templates: {
                            header: '<div class="category mt-1">Forum Suggestions</div>', suggestion: function (t) {
                                return t._highlightResult.title.value
                            }
                        }
                    }]).on("autocomplete:selected", function (t, e) {
                        e.path && (location = e.path)
                    })
                }, forum: function i() {
                    var i = this.client.initIndex("forum");
                    this.placeholder = "SEARCH THE FORUM", autocomplete("#search", {hint: !0}, [{
                        source: autocomplete.sources.hits(i, {hitsPerPage: 5}),
                        displayKey: "title",
                        templates: {
                            suggestion: function (t) {
                                return t._highlightResult.title.value
                            }
                        }
                    }]).on("autocomplete:selected", function (t, e) {
                        e.path && (location = e.path)
                    })
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form method=GET action="{{ through == \'everything\' ? \'/search\' : \'/discuss\' }}" class="nav-search-form is-flex"><svg class=is-hidden-mobile viewBox="0 0 20 20" version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink style="width: 30px"><title>search</title><g stroke=none stroke-width=1 fill=none fill-rule=evenodd><g id=search-icon fill=#cacaca><path d="M11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L14.0162265,12.6020129 C14.6819842,12.4223519 15.4217116,12.5932845 15.9484049,13.1199778 L18.7795171,15.95109 C19.5598243,16.7313971 19.5646685,17.9916807 18.7781746,18.7781746 C17.997126,19.5592232 16.736965,19.5653921 15.95109,18.7795171 L13.1199778,15.9484049 C12.5960188,15.4244459 12.4217025,14.6840739 12.6018353,14.0160489 L11.1921711,12.6063847 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z"></path></g></g></svg> <input type=search class=input id=search name=q placeholder="{{ placeholder }}" required> <button type=submit class="button is-primary in-caps is-hidden-mobile">Search</button></form>'
    }, {}],
    179: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {
                selected: {"default": "monthly"},
                required: {"default": !1}
            }, data: function () {
                return {valid: !1, coupon: !1, code: "", showMessage: !1, message: "", timer: null, locked: !1}
            }, ready: function () {
                var t;
                (t = this.getQueryStringParam("coupon")) && (this.code = t, this.validateCode()), this.$watch("selected", this.validateCode)
            }, methods: {
                whileEnteringCode: function () {
                    this.resetCouponInput()
                }, resetCouponInput: function () {
                    this.showMessage = !1, this.error = !1, this.valid = !1
                }, validateCode: function () {
                    clearTimeout(this.timer), this.code && this.checkCouponCode().fail(this.handleInvalidCode).done(this.handleValidCode)
                }, checkCouponCode: function () {
                    return $.getJSON("/coupons/" + this.code)
                }, handleInvalidCode: function (t) {
                    this.failMessage(t.responseJSON.status), this.code = ""
                }, handleValidCode: function (t) {
                    return this.coupon = t.coupon, flash("You discovered a hidden coupon. Nice!"), this.coupon.active ? this.checkIfPlanWorksWithCoupon() ? (this.locked = !0, this.successMessage(), void this.$dispatch("CouponAdded", this.coupon)) : (this.locked = !1, this.failMessage("This coupon does not work with your selected plan, unfortunately.")) : (this.code = "", this.failMessage("Sorry, this coupon has expired."))
                }, failMessage: function (t) {
                    this.message = t, this.valid = !1, this.showMessage = !0
                }, successMessage: function () {
                    this.valid = !0, this.showMessage = !0, this.message = this.formatCouponDescription()
                }, formatCouponDescription: function () {
                    return this.coupon.description + ": " + this.coupon.percentage_discount + "% off"
                }, checkIfPlanWorksWithCoupon: function () {
                    return this.coupon && this.coupon.exclude_plans.indexOf(this.selected) == -1
                }, getQueryStringParam: function (t) {
                    t = t.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
                    var e = new RegExp("[\\?&]" + t + "=([^&#]*)"), n = e.exec(location.search);
                    return null !== n && decodeURIComponent(n[1].replace(/\+/g, " "))
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = "<div class=control><div class=\"control has-addons mb-0\"><input type=text id=coupon-code name=coupon-code class=is-expanded placeholder=\"Have a coupon code?\" v-model=code @blur=validateCode @keyup=whileEnteringCode :readonly=locked autocomplete=off :required=required :class=\"{ 'is-disabled': locked, 'input': true }\"> <button type=button class=button @click=validateCode :disabled=valid>{{ valid ? 'Confirmed!' : 'Confirm' }}</button></div><span class=help :class=\"{ 'is-success': valid, 'is-danger': ! valid }\" v-show=showMessage v-text=message></span></div>"
    }, {}],
    180: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../../StripePaymentMethod"), r = i(o);
        n["default"] = {
            props: {
                email: "",
                button: {"default": "Add Card"},
                submitsForm: {"default": !0},
                disabled: !1,
                options: {"default": {name: "Laracasts Subscription", panelLabel: "Update Card Details"}},
                offerApplePay: {"default": !0}
            }, data: function () {
                return {stripeToken: "", supportsApplePay: !1, showPaymentButtons: !0, selectedPlan: !1}
            }, ready: function () {
                var t = this;
                this.stripe = new r["default"], this.stripe.detectApplePaySupport(function () {
                    return t.supportsApplePay = !0
                }), this.stripe.afterCardIsAccepted(function (e) {
                    t.stripeToken = e, t.showPaymentButtons = !1, t.$emit("payment-details-acquired"), t.submitsForm && t.$nextTick(function () {
                        return $("#billing-form").submit()
                    })
                })
            }, events: {
                PlanChanged: function (t) {
                    this.selectedPlan = t
                }
            }, methods: {
                openPaymentModal: function () {
                    this.options.email = this.email, this.stripe.openModal(this.selectedPlan, this.options)
                }, openApplePayModal: function () {
                    this.stripe.openApplePayModal(this.selectedPlan)
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div><input type=hidden name=stripeToken v-model=stripeToken><div class="control is-grouped" v-show=showPaymentButtons><p class=control><button type=button class="button is-primary" @click=openPaymentModal :disabled=disabled v-text=button></button><p class="help is-muted ml-1" v-show="! supportsApplePay &amp;&amp; offerApplePay">To instead use Apple Pay, visit this page in Safari (requires MacOS Sierra).<p class="control is-vertically-centered fs-smaller is-muted" v-show="supportsApplePay &amp;&amp; offerApplePay">or use<p class=control v-show="supportsApplePay &amp;&amp; offerApplePay"><button type=button class=button id=apple-pay-button @click=openApplePayModal :disabled=disabled></button></div><div class=control v-show="! showPaymentButtons"><label class="checkbox fs-smaller"><input type=checkbox checked disabled> Payment Method Received!</label></div></div>'
    }, {"../../StripePaymentMethod": 168}],
    181: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: ["selected"], data: function () {
                return {
                    coupon: "",
                    discountApplied: !1,
                    plans: [{type: "monthly", name: "Monthly", description: "Monthly", cost: 9}, {
                        type: "yearly",
                        name: "Yearly",
                        description: "Yearly",
                        cost: 86
                    }, {type: "forever", name: "Forever", description: "Forever Access", cost: 350}, {
                        type: "business-5",
                        name: "Small Potatoes",
                        description: "Small Potatoes: Any 5 Developers",
                        cost: 300
                    }, {
                        type: "business-10",
                        name: "Over-Medium",
                        description: "Over-Medium: Any 10 Developers",
                        cost: 575
                    }, {
                        type: "business-25",
                        name: "Big Business",
                        description: "Big Business: Any 25 Developers",
                        cost: 1400
                    }, {
                        type: "business-50",
                        name: "Park Place",
                        description: "Park Place: Any 50 Developers",
                        cost: 2500
                    }]
                }
            }, ready: function () {
                this.onPlanChanged()
            }, events: {
                CouponAdded: function (t) {
                    this.discountApplied || (this.coupon = t, this.discountPlans())
                }
            }, methods: {
                onPlanChanged: function () {
                    var t = this, e = this.plans.find(function (e) {
                        return e.type == t.selected
                    });
                    this.$root.$broadcast("PlanChanged", e)
                }, discountPlans: function () {
                    var t = this;
                    this.plans.forEach(function (e) {
                        t.planAcceptsCoupon(e.type) && t.applyCouponToPlan(e)
                    }), this.discountApplied = !0
                }, planAcceptsCoupon: function (t) {
                    return this.coupon && this.coupon.exclude_plans.indexOf(t) == -1
                }, applyCouponToPlan: function (t) {
                    var e = this.coupon.percentage_discount / 100, n = (t.cost - t.cost * e).toFixed(2);
                    t.cost = n
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<span class="select w-100"><select id=subscription-plan name=subscription-plan class=w-100 v-model=selected @change=onPlanChanged><option v-for="plan in plans" value="{{ plan.type }}">{{ plan.description }} (${{ plan.cost }})</select></span>'
    }, {}],
    182: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("./Coupon.vue"), r = i(o), s = t("./Plans.vue"), a = i(s);
        n["default"] = {
            props: ["selected"],
            components: {Coupon: r["default"], Plans: a["default"]},
            events: {
                CouponAdded: function (t) {
                    this.$broadcast("CouponAdded", t)
                }
            }
        },
        e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = "<div class=control><plans :selected.sync=selected></plans></div><coupon :selected.sync=selected></coupon>"
    }, {"./Coupon.vue": 179, "./Plans.vue": 181}],
    183: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../../utilities/Form"), r = i(o);
        n["default"] = {
            props: ["url"], methods: {
                deleteReply: function (t) {
                    swal({
                        title: "Are you sure?",
                        text: "This will erase your reply.",
                        type: "warning",
                        confirmButtonColor: "#DD6B55",
                        confirmButtonText: "Yes, delete it!",
                        showCancelButton: !0,
                        showLoaderOnConfirm: !0,
                        closeOnConfirm: !1
                    }, function () {
                        r["default"].submit(t.target, function (t) {
                            $(this).closest("[data-reply]").fadeOut(500), swal.close(), flash("Okay, your reply has been deleted.")
                        })
                    }), t.preventDefault()
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form method=POST action="{{ url }}" @submit=deleteReply><input type=hidden name=_method value=DELETE> <button type=submit class="button is-naked" title="Want to delete this reply?"><img src=/images/icons/trash.svg alt="Delete Reply Icon"></button></form>'
    }, {"../../utilities/Form": 197}],
    184: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: ["id", "is-active"],
            methods: {
                favoriteConversation: function (t) {
                    Form.submit(t.target), t.preventDefault()
                }, toggle: function () {
                    this.isActive = !this.isActive, this.isActive && flash('You may now access this thread from your "My Favorites" filter.', "/discuss?favorites=1")
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form id=conversation-favorite-button class="level-item mr-0" method=POST action="/conversations/{{ id }}/favorite" @submit=favoriteConversation><input type=hidden name=lesson_type value=Forum\\Conversation> <button id=js-favorite-thread class="button is-naked p-0 has-icon" type=submit @click=toggle title="Want to favorite this conversation?"><svg class="icon is-toggle {{ isActive ? \'is-active\' : \'\' }}" xmlns=http://www.w3.org/2000/svg width=14 height=16 viewBox="0 0 14 16"><path d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"></path></svg></button></form>'
    }, {}],
    185: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("./DeleteReplyButton.vue"), r = i(o), s = t("./ReplyLikes.vue"), a = i(s), l = t("./ReportSpamButton.vue"), u = i(l), c = t("autosize"), h = i(c);
        n["default"] = {
            data: function () {
                return {showBody: !0}
            },
            ready: function () {
                var t = $(this.$el).find("textarea[name=body_in_markdown]");
                t.html(t.html().replace(/#123;/g, "{{"))
            },
            components: {DeleteReplyButton: r["default"], ReplyLikes: a["default"], ReportSpamButton: u["default"]},
            methods: {
                editReply: function () {
                    var t = this;
                    this.showBody = !1, this.$nextTick(function () {
                        (0, h["default"])($(t.$el).find("textarea[name=body_in_markdown]"))
                    })
                }, updateReply: function (t) {
                    Form.submit(t.target, function (t) {
                        this.showBody = !0, this.replaceReplyWith(t.body), this.applyHighlighter(), this.$broadcast("AjaxCompleted")
                    }.bind(this)), t.preventDefault()
                }, replaceReplyWith: function (t) {
                    $(this.$el).find("*[data-reply-body]").html(t)
                }, applyHighlighter: function () {
                    this.$nextTick(function () {
                        $(this.$el).find("pre code").each(function (t, e) {
                            hljs.highlightBlock(e)
                        })
                    })
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"])
    }, {"./DeleteReplyButton.vue": 183, "./ReplyLikes.vue": 187, "./ReportSpamButton.vue": 188, autosize: 2}],
    186: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("moment"), r = i(o);
        n["default"] = {
            props: ["userId"], data: function () {
                return {notifications: [], token: window.Form.token}
            }, events: {
                ToggleUserNotifications: function () {
                    var t = this;
                    $(this.$el);
                    this.toggleMenu(function () {
                        $("body").on("click", function (e) {
                            var n = $(e.target);
                            n.closest("#user-notifications").length || ($("body").off("click"), t.hideMenu())
                        })
                    })
                }
            }, ready: function () {
                var t = this, e = "/discuss/notifications/" + this.userId;
                this.userNotificationsIcon = $("#user-notifications-toggle"), $.getJSON(e, function (e) {
                    t.notifications = e, t.notifications.length ? t.userNotificationsIcon.fadeIn(300) : t.userNotificationsIcon.hide()
                })
            }, methods: {
                onUserNotificationsCleared: function () {
                    var t = this;
                    this.toggleMenu(function () {
                        t.userNotificationsIcon.fadeOut(500)
                    })
                }, toggleMenu: function (t) {
                    var e = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = $(this.$el), i = 0 == parseInt(n.css("right"));
                    n.toggle().animate({right: i || e ? "-" + n.css("width") : 0}, 200, t)
                }, hideMenu: function (t) {
                    return this.toggleMenu(t, !0)
                }, clearNotification: function (t) {
                    $.ajax({type: "DELETE", url: "/discuss/notifications/mentions/" + t, data: {notificationId: t}})
                }, ago: function (t) {
                    return (0, r["default"])(t).fromNow()
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<div id=user-notifications class=panel style="display: none"><h2 class="panel-heading has-icon"><svg id=icon-alarm class=icon height=24 viewBox="0 0 24 24" width=24 xmlns=http://www.w3.org/2000/svg><path d="M0 0h24v24H0V0z" fill=none></path><path d="M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72C7.37 5.03 5.12 7.75 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z"></path></svg> Notifications</h2><a class="panel-block p-2 fs-smaller" href="{{ notification.link }}" v-for="notification in notifications" @click=clearNotification(notification.id)><strong class=pr-1>{{ ago(notification.updated_at) }} —</strong> @{{ notification.description }}</a><div class="panel-block p-2"><form method=POST action=/discuss/notifications/mentions class=has-text-centered><input type=hidden name=_method value=DELETE> <input type=hidden name=_token value="{{ token }}"><ajax-button type=submit @complete=onUserNotificationsCleared remote="" class=is-primary>Clear All Notifications</ajax-button></form></div></div>'
    }, {moment: 51}],
    187: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {
                url: {},
                users: {"default": Array},
                currentUser: {}
            }, data: function () {
                return {liked: !1, likes: 0}
            }, ready: function () {
                this.likes = this.users.length, this.liked = this.users.indexOf(this.currentUser) > -1
            }, methods: {
                doLike: function (t) {
                    this.liked = !this.liked, this.liked ? this.likes++ : this.likes--, Form.submit(t.target)
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form class=is-vertically-centered action="{{ url }}" @submit.prevent=doLike><button type=submit class="button is-naked {{ currentUser ? \'\' : \'is-disabled\' }} has-icon p-0" title="{{ currentUser ? \'Like this status.\' : \'Please sign in to like replies.\' }}"><svg :class="{ \'is-active\': liked }" class="icon is-28x28 is-toggle" xmlns=http://www.w3.org/2000/svg width=16 height=16 viewBox="0 0 16 16"><path d="M14 14c-.05.69-1.27 1-2 1H5.67L4 14V8c1.36 0 2.11-.75 3.13-1.88 1.23-1.36 1.14-2.56.88-4.13-.08-.5.5-1 1-1 .83 0 2 2.73 2 4l-.02 1.03c0 .69.33.97 1.02.97h2c.63 0 .98.36 1 1l-1 6L14 14zm0-8h-2.02l.02-.98C12 3.72 10.83 0 9 0c-.58 0-1.17.3-1.56.77-.36.41-.5.91-.42 1.41.25 1.48.28 2.28-.63 3.28-1 1.09-1.48 1.55-2.39 1.55H2C.94 7 0 7.94 0 9v4c0 1.06.94 2 2 2h1.72l1.44.86c.16.09.33.14.52.14h6.33c1.13 0 2.84-.5 3-1.88l.98-5.95c.02-.08.02-.14.02-.2-.03-1.17-.84-1.97-2-1.97H14z"></path></svg> <span class="likes-count is-circle" v-show=likes v-text=likes></span></button></form>'
    }, {}],
    188: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {
                url: {},
                "class": {},
                buttonClass: {"default": ""},
                message: {"default": "Is this reply full of spam?"}
            }, methods: {
                notifyAdmin: function (t) {
                    swal({
                        title: "Spam?",
                        text: this.message,
                        type: "warning",
                        confirmButtonColor: "#DD6B55",
                        confirmButtonText: "Yes",
                        showCancelButton: !0
                    }, function () {
                        Form.submit(t.target, function (t) {
                            flash("Okay, thanks for the help!")
                        })
                    }), t.preventDefault()
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = '<form class="report-spam-form {{ class }}" action="{{ url }}" @submit=notifyAdmin><button type=submit class="button is-naked {{ buttonClass }}" title="{{ message }}"><img src=/images/icons/frown.svg alt="Report Spam Icon"></button></form>'
    }, {}],
    189: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {
                isComplete: {"default": !1},
                id: {},
                size: {"default": "is-50x50"},
                showLabel: !1
            }, methods: {
                onSubmit: function (t) {
                    this.isComplete = !this.isComplete, this.$dispatch("Complete", this.id, this.isComplete), $(t.target).closest(".episode-list-item, .lesson-list-item, .video-details").toggleClass("is-complete")
                }
            }
        }, e.exports.__esModule && (e.exports = e.exports["default"]), ("function" == typeof e.exports ? e.exports.options : e.exports).template = "<button class=lesson-complete-button @click=onSubmit><svg xmlns=http://www.w3.org/2000/svg class=\"icon {{ size }}\" viewBox=\"0 0 12 16\"><path d=\"M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z\" fill=\"{{ isComplete ? 'white' : '#cacaca' }}\"></path></svg> <span v-if=showLabel>{{ isComplete ? 'Completed Lesson' : 'Incomplete Lesson' }}</span></button>"
    }, {}],
    190: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            props: {active: {"default": !1}},
            methods: {
                submitForm: function (t) {
                    this.active = !this.active, Form.submit(t.target, this.notifyUser)
                }, notifyUser: function () {
                    return this.active ? flash("Okay, we'll email ya each time a new episode is published.") : void flash("Okay, okay. We'll no longer update you on this series.")
                }
            }
        }
    }, {}],
    191: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e) {
            if (!(t instanceof e))throw new TypeError("Cannot call a class as a function")
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var r = function () {
            function t(t, e) {
                for (var n = 0; n < e.length; n++) {
                    var i = e[n];
                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
                }
            }

            return function (e, n, i) {
                return n && t(e.prototype, n), i && t(e, i), e
            }
        }(), s = t("store"), a = i(s), l = void 0, u = function () {
            function t(e, n, i) {
                o(this, t), this.player = e, this.autoplay = n, this.time = i, this.addEventListeners()
            }

            return r(t, [{
                key: "addEventListeners", value: function () {
                    this.player.ready(this.onLoad.bind(this)), this.player.on("play", this.onPlay.bind(this)), this.player.on("pause", this.onPause.bind(this)), this.player.on("ended", this.onEnd.bind(this)), this.player.on("volumechange", this.onVolumeChange.bind(this)), $(".vjs-menu-item").on("click", this.onPlaybackRateChange.bind(this))
                }
            }, {
                key: "onLoad", value: function () {
                    this.setStartPoint().setDefaultVolume().setDefaultPlaybackSpeed().startWhereLastLeftOff()
                }
            }, {
                key: "onPlay", value: function () {
                    1 == Math.round(this.currentTime()) && this.startAt(0), $(".watch-later-button").fadeToggle(), this.beginRecordingPosition()
                }
            }, {
                key: "onPause", value: function () {
                    $(".watch-later-button").fadeToggle()
                }
            }, {
                key: "onEnd", value: function () {
                    this.stopRecordingPosition()
                }
            }, {
                key: "onVolumeChange", value: function () {
                    a["default"].set("laracasts_volume", this.player.volume())
                }
            }, {
                key: "onPlaybackRateChange", value: function () {
                    a["default"].set("laracasts_playback_speed", this.player.playbackRate())
                }
            }, {
                key: "setStartPoint", value: function () {
                    return this.startAt(this.getVideoStartTime()), this
                }
            }, {
                key: "setDefaultVolume", value: function () {
                    var t = a["default"].get("laracasts_volume");
                    return t && this.player.volume(t), this
                }
            }, {
                key: "setDefaultPlaybackSpeed", value: function () {
                    var t = a["default"].get("laracasts_playback_speed");
                    return t && this.player.playbackRate(t), this
                }
            }, {
                key: "startWhereLastLeftOff", value: function () {
                    return this.hasPreviouslyBeenWatched() && !this.time ? (this.startAt(this.secondsWatchedSoFar()), void(this.autoplay && this.play())) : (this.autoplay && this.startAt(0).play(), this)
                }
            }, {
                key: "beginRecordingPosition", value: function () {
                    var t = this;
                    l = setInterval(function () {
                        a["default"].set(t.id(), t.currentTime())
                    }, 5e3)
                }
            }, {
                key: "stopRecordingPosition", value: function () {
                    clearInterval(l), a["default"].remove(this.id())
                }
            }, {
                key: "play", value: function () {
                    return this.player.play(), this
                }
            }, {
                key: "pause", value: function () {
                    return this.player.pause(), this
                }
            }, {
                key: "startAt", value: function (t) {
                    return this.player.currentTime(t), this
                }
            }, {
                key: "currentTime", value: function () {
                    return this.player.currentTime()
                }
            }, {
                key: "id", value: function () {
                    return "laracasts_video:" + location.pathname
                }
            }, {
                key: "hasPreviouslyBeenWatched", value: function () {
                    return this.secondsWatchedSoFar() > 1
                }
            }, {
                key: "secondsWatchedSoFar", value: function () {
                    return Math.floor(a["default"].get(this.id()) - 3)
                }
            }, {
                key: "getVideoStartTime", value: function () {
                    if (!this.time)return 1;
                    if (this.time.indexOf(":") > -1) {
                        var t = this.time.split(":");
                        return 60 * parseInt(t[0]) + parseInt(t[1])
                    }
                    return parseInt(this.time)
                }
            }, {
                key: "videojs", value: function () {
                    return this.player
                }
            }]), t
        }();
        n["default"] = u
    }, {store: 62}],
    192: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("./Player"), r = i(o), s = t("query-string");
        window.videojs = t("video.js"), t("videojs-resolution-switcher"), t("videojs-hotkeys"), t("videojs-watermark"), n["default"] = {
            props: ["lesson"],
            data: function () {
                return {completed: !1}
            },
            ready: function () {
                var t = this, e = this.initializeVideoPlayer();
                e.videojs().on("play", function () {
                    t.incrementViewCount(this), t.recordViewingForUser(this)
                }), e.videojs().on("ended", function () {
                    t.completeLesson(), t.advanceToNextEpisode()
                })
            },
            methods: {
                initializeVideoPlayer: function () {
                    var t = videojs("laracasts-video", {
                        fluid: !0,
                        playbackRates: [.5, .75, 1, 1.25, 1.5, 1.75, 2],
                        plugins: {videoJsResolutionSwitcher: {"default": "high", dynamicLabel: !1}}
                    }, function () {
                        this.hotkeys({volumeStep: .1, seekStep: 10, enableVolumeScroll: !1, enableNumbers: !1})
                    });
                    return t.watermark({
                        image: "/images/logo-footer.png",
                        position: "bottom-right"
                    }), new r["default"](t, this.queryParam("autoplay"), this.queryParam("time"))
                }, incrementViewCount: function (t) {
                    t.currentTime() > 2 || $.ajax({
                        url: "/api/videos/" + this.lesson,
                        type: "PUT",
                        data: {updateCount: !0},
                        headers: {"X-CSRF-TOKEN": LARACASTS.csrfToken}
                    })
                }, recordViewingForUser: function (t) {
                    t.currentTime() > 2 || $.ajax({
                        url: "/api/watching/" + this.lesson,
                        type: "POST",
                        headers: {"X-CSRF-TOKEN": LARACASTS.csrfToken}
                    })
                }, completeLesson: function () {
                    var t = $(".lesson-complete-button");
                    t.closest(".video-details").hasClass("is-complete") || t.trigger("click")
                }, advanceToNextEpisode: function () {
                    var t = document.querySelector(".next-lesson-arrow.next a");
                    t ? !function () {
                            swal({
                                title: "Lesson Complete",
                                type: "success",
                                text: "Advancing to the next episode in <strong class='swal-timer-count'>5</strong> seconds...",
                                html: !0,
                                timer: 5e3,
                                showCancelButton: !0,
                                confirmButtonText: "Next Episode",
                                confirmButtonColor: "#00b1b3"
                            }, function () {
                                t && t.click()
                            });
                            var e = $(".sweet-alert").find(".swal-timer-count"), n = +e.text();
                            setInterval(function () {
                                n > 1 && e.text(--n)
                            }, 1e3)
                        }() : swal({
                            title: "Lesson Complete",
                            text: "Great job! You're now that much smarter.",
                            type: "success",
                            timer: 3e3,
                            showConfirmButton: !1
                        })
                }, queryParam: function (t) {
                    return s.parse(location.search)[t]
                }
            }
        }
    }, {
        "./Player": 191,
        "query-string": 60,
        "video.js": 159,
        "videojs-hotkeys": 160,
        "videojs-resolution-switcher": 161,
        "videojs-watermark": 162
    }],
    193: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../utilities/Form"), r = i(o);
        n["default"] = {
            params: ["flash", "complete"], bind: function () {
                this.submitButton = $(this.el.querySelector("[type=submit]")), this.errors = this.el.querySelector(".errors"), this.hideErrors(), this.el.addEventListener("submit", this.onSubmit.bind(this))
            }, onSubmit: function (t) {
                this.submitButton.addClass("is-loading"), r["default"].submit(this.el, this.onComplete.bind(this), this.onError.bind(this)), t.preventDefault()
            }, onComplete: function () {
                this.submitButton.removeClass("is-loading"), this.hideErrors(), this.params.flash && flash(this.params.flash), this.params.complete && this.vm[this.params.complete](this.el)
            }, onError: function (t) {
                this.submitButton.removeClass("is-loading");
                var e = Object.keys(t).map(function (e) {
                    return "<li>" + t[e] + "</li>"
                });
                $(this.el).find(".errors").html(e).fadeIn(300)
            }, hideErrors: function () {
                this.errors && (this.errors.style.display = "none")
            }
        }
    }, {"../utilities/Form": 197}],
    194: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            bind: function () {
                this.form = $(this.el).closest("form"), this.maySubmit = !1, $(this.el).on("click", $.proxy(this.doConfirmation, this))
            }, doConfirmation: function (t) {
                var e = this, n = $(this.el), i = JSON.parse(this.expression);
                this.maySubmit || t.preventDefault(), swal({
                    title: i.title,
                    text: i.message,
                    confirmButtonText: "Yes",
                    type: "warning",
                    showCancelButton: !0
                }, function (t) {
                    return t ? (e.maySubmit = !0, e.el.click()) : void n.removeAttr("disabled")
                })
            }, unbind: function () {
                this.form.off("submit")
            }
        }
    }, {}],
    195: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        var o = t("vue"), r = i(o), s = t("./utilities/Flash"), a = i(s), l = t("./utilities/Form"), u = i(l), c = t("./components/Search.vue"), h = i(c), f = t("./components/Dropdown.vue"), d = i(f), p = t("./components/Modal.vue"), y = i(p), v = t("./components/forum/Notifications.vue"), m = i(v), g = t("./components/AjaxButton.vue"), b = i(g), _ = t("./components/Login.vue"), w = i(_), k = t("./components/lessons/CompleteButton.vue"), C = i(k), j = t("./components/NewsletterForm.vue"), T = i(j), S = t("./components/billing/SubscriptionPlans.vue"), x = i(S), O = t("./components/billing/Coupon.vue"), E = i(O), P = t("./components/Graph.vue"), M = i(P), A = t("./components/Carousel.vue"), L = i(A), D = t("./components/Carousel-Item.vue"), F = i(D), R = t("./directives/Confirm"), I = i(R), N = t("./directives/Ajax"), $ = i(N), B = t("./app"), W = i(B);
        window.Vue = r["default"], window.flash = a["default"], window.Form = u["default"], window.Form.token = LARACASTS.csrfToken, r["default"].component("search", h["default"]), r["default"].component("dropdown", d["default"]), r["default"].component("modal", y["default"]), r["default"].component("ajax-button", b["default"]), r["default"].component("login-modal", w["default"]), r["default"].component("complete-button", C["default"]), r["default"].component("newsletter-form", T["default"]), r["default"].component("notifications", m["default"]), r["default"].component("subscription-plans", x["default"]), r["default"].component("graph", M["default"]), r["default"].component("coupon", E["default"]), r["default"].component("carousel", L["default"]), r["default"].component("carousel-item", F["default"]), r["default"].directive("confirm", I["default"]), r["default"].directive("ajax", $["default"]), new r["default"](W["default"])
    }, {
        "./app": 169,
        "./components/AjaxButton.vue": 170,
        "./components/Carousel-Item.vue": 171,
        "./components/Carousel.vue": 172,
        "./components/Dropdown.vue": 173,
        "./components/Graph.vue": 174,
        "./components/Login.vue": 175,
        "./components/Modal.vue": 176,
        "./components/NewsletterForm.vue": 177,
        "./components/Search.vue": 178,
        "./components/billing/Coupon.vue": 179,
        "./components/billing/SubscriptionPlans.vue": 182,
        "./components/forum/Notifications.vue": 186,
        "./components/lessons/CompleteButton.vue": 189,
        "./directives/Ajax": 193,
        "./directives/Confirm": 194,
        "./utilities/Flash": 196,
        "./utilities/Form": 197,
        vue: 163
    }],
    196: [function (t, e, n) {
        "use strict";
        e.exports = function (t, e) {
            var n = $($("#flash-template").html());
            $(".notification.for-user").remove(), n.find(".notification-body").html(t).attr("href", e || "#").end().appendTo("body").hide().fadeIn(250).delay(2800).animate({marginRight: "-100%"}, 300, "swing", function () {
                $(this).remove()
            })
        }
    }, {}],
    197: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            submit: function (t, e, n) {
                t = $(t);
                var i = t.find('input[name="_method"]').val() || "POST", o = t.find("[type=submit]");
                o.toggleClass("is-loading"), $.ajax({
                    type: i,
                    url: t.prop("action"),
                    data: t.serialize(),
                    dataType: "json"
                }).done(function (n) {
                    o.toggleClass("is-loading"), "function" == typeof e && e.call(t, n)
                }).fail(function (e) {
                    o.toggleClass("is-loading"), "function" == typeof n && n.call(t, e.responseJSON)
                })
            }
        }
    }, {}],
    198: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = function () {
            var t = $("textarea[data-autosize]");
            (0, r["default"])(t), t.on("keydown", function (t) {
                if (9 === t.keyCode) {
                    var e = this.value, n = this.selectionStart, i = this.selectionEnd;
                    return this.value = e.substring(0, n) + "\t" + e.substring(i), this.selectionStart = this.selectionEnd = n + 1, !1
                }
            }), $("textarea#body").atwho({
                at: "@", limit: 5, callbacks: {
                    remoteFilter: function (t, e) {
                        t.length <= 2 || $.getJSON("/api/users", {q: t}, function (t) {
                            e(t)
                        })
                    }
                }
            })
        };
        var o = t("autosize"), r = i(o)
    }, {autosize: 2}],
    199: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {totalLessonsInProgress: !0}
            }, events: {
                InProgressLessonsHaveBeenCleared: function () {
                    this.totalLessonsInProgress = !1
                }
            }, ready: function () {
                $("body").on("change", ".filterable-item input[type=checkbox]", function (t) {
                    $(this).next()[0].click()
                }), this.totalLessonsInProgress = $(".in-progress li:visible:not(.is-empty)").length
            }, methods: {
                removeInProgressLesson: function (t) {
                    $(t).closest(".lesson-list-item").fadeOut(300), this.totalLessonsInProgress--
                }, removeAllInProgressLessons: function () {
                    $(".lesson-list:first > li").fadeOut(300), this.totalLessonsInProgress = 0
                }
            }
        }
    }, {}],
    200: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../components/billing/PaymentDetails.vue"), r = i(o);
        n["default"] = {
            components: {PaymentDetails: r["default"]}, data: function () {
                return {
                    fields: ["name", "address", "city", "zip", "state"],
                    name: "",
                    email: "",
                    address: "",
                    address_two: "",
                    city: "",
                    state: "",
                    cost: "",
                    zip: "",
                    country: "us"
                }
            }, computed: {
                formFilled: function () {
                    var t = this, e = !0;
                    return this.fields.forEach(function (n) {
                        t[n] || (e = !1)
                    }), e
                }
            }
        }
    }, {"../components/billing/PaymentDetails.vue": 180}],
    201: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            methods: {
                onVote: function (t, e) {
                    t = $(t), t.find("button").toggleClass("is-active").find(".votes").text(e.votes)
                }
            }
        }
    }, {}],
    202: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {values: [], months: []}
            }, created: function () {
                var t = this;
                $.get("/api/users/" + LARACASTS.user + "/completions?group_by=month", function (e) {
                    t.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], t.values = t.completedLessonsCountPerMonth(e)
                })
            }, methods: {
                completedLessonsCountPerMonth: function (t) {
                    return this.months.map(function (e, n) {
                        for (var i = 0; i < t.length; i++)if (t[i].month == n + 1)return t[i].lessons_completed;
                        return 0
                    })
                }
            }
        }
    }, {}],
    203: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../utilities/Textarea"), r = i(o), s = t("../components/forum/ForumReply.vue"), a = i(s), l = t("../components/forum/FavoriteConversationButton.vue"), u = i(l), c = t("../components/forum/ReportSpamButton.vue"), h = i(c);
        n["default"] = {
            data: function () {
                return {newConversation: {channel: 0, title: "", body: ""}, newConversationSubmissionIsAllowed: !1}
            },
            components: {
                FavoriteConversationButton: u["default"],
                ForumReply: a["default"],
                ReportSpamButton: h["default"]
            },
            ready: function () {
                (0, r["default"])(), this.validateNewConversation()
            },
            filters: {
                unescapeBraces: function (t) {
                    return t.replace(/\\\{/g, "{")
                }
            },
            methods: {
                submitSubscribeToNotificationForm: function () {
                    Form.submit(this.$els.form, function () {
                        flash("Notification subscription updated!")
                    })
                }, validateNewConversation: function () {
                    this.newConversationSubmissionIsAllowed = !(!this.newConversation.title || !this.newConversation.body || "0" === this.newConversation.channel)
                }
            }
        }
    }, {
        "../components/forum/FavoriteConversationButton.vue": 184,
        "../components/forum/ForumReply.vue": 185,
        "../components/forum/ReportSpamButton.vue": 188,
        "../utilities/Textarea": 198
    }],
    204: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../components/lessons/Video"), r = i(o), s = t("../components/lessons/NotifyWhenUpdatedButton"), a = i(s);
        n["default"] = {components: {VideoPlayer: r["default"], NotifyWhenUpdatedButton: a["default"]}}
    }, {"../components/lessons/NotifyWhenUpdatedButton": 190, "../components/lessons/Video": 192}],
    205: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {showEditProfileModal: !1}
            }
        }
    }, {}],
    206: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {}
    }, {}],
    207: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../components/lessons/NotifyWhenUpdatedButton"), r = i(o);
        n["default"] = {
            components: {NotifyWhenUpdatedButton: r["default"]},
            props: ["userStats", "watchingLater"],
            events: {
                LessonCompleted: function (t, e) {
                    this.incrementCompletionRate(t, e)
                }
            },
            methods: {
                watchLater: function (t) {
                    this.watchingLater = !this.watchingLater, this.$dispatch("WatchLater", t, "Laracasts\\Series")
                }, incrementCompletionRate: function (t, e) {
                    var n = e ? 1 : -1;
                    this.userStats.completionRate = Math.round((this.userStats.completionCount += n) / this.userStats.totalEpisodes * 100)
                }
            }
        }
    }, {"../components/lessons/NotifyWhenUpdatedButton": 190}],
    208: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../../components/billing/PaymentDetails.vue"), r = i(o);
        n["default"] = {components: {PaymentDetails: r["default"]}}
    }, {"../../components/billing/PaymentDetails.vue": 180}],
    209: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var o = t("../../components/billing/Coupon.vue"), r = i(o);
        n["default"] = {
            components: {Coupon: r["default"]}, data: function () {
                return {valid: !1}
            }, events: {
                CouponAdded: function () {
                    this.valid = !0
                }
            }
        }
    }, {"../../components/billing/Coupon.vue": 179}],
    210: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            methods: {
                onUnsubscribed: function (t) {
                    $(t).closest("li").fadeOut(300), flash("Unsubscribed!")
                }
            }
        }
    }, {}],
    211: [function (t, e, n) {
        "use strict";
        function i(t) {
            return t && t.__esModule ? t : {"default": t}
        }

        function o(t, e, n) {
            return e in t ? Object.defineProperty(t, e, {
                    value: n,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                }) : t[e] = n, t
        }

        Object.defineProperty(n, "__esModule", {value: !0});
        var r = t("../components/billing/PaymentDetails.vue"), s = i(r);
        n["default"] = {
            components: {PaymentDetails: s["default"]}, data: function () {
                return {
                    hasPaymentDetails: !1,
                    loading: !1,
                    form: {username: "", email: "", password: "", passwordConfirmation: ""},
                    errors: {username: !1, email: !1, password: !1}
                }
            }, computed: {
                formFilled: function () {
                    if (!this.hasPaymentDetails)return !1;
                    for (var t in this.form)if (!this.form[t])return !1;
                    return !0
                }
            }, methods: {
                validate: function (t) {
                    this.form[t] && $.getJSON("/api/users/check", o({}, t, this.form[t]), function (e) {
                        return e ? (this.form[t] = "", this.errors[t] = !0) : void(this.errors[t] = !1)
                    }.bind(this))
                }, confirmPasswordConfirmed: function () {
                    return this.form.password == this.form.passwordConfirmation || (this.errors.password = !0, this.form.password = "", void(this.form.passwordConfirmation = ""))
                }
            }
        }
    }, {"../components/billing/PaymentDetails.vue": 180}],
    212: [function (t, e, n) {
        "use strict";
        Object.defineProperty(n, "__esModule", {value: !0}), n["default"] = {
            data: function () {
                return {
                    teamId: "",
                    members: [],
                    isProcessing: !1,
                    emailToAdd: "",
                    remaining: 0,
                    errors: null,
                    token: "",
                    keys: [],
                    values: []
                }
            }, ready: function () {
                var t = this;
                $.get("/api/teams/" + this.teamId + "/completions", function (e) {
                    t.keys = e.map(function (t) {
                        return t.username
                    }), t.values = e.map(function (t) {
                        return t.completed
                    })
                }), $.get("/admin/subscription/team/members", function (e) {
                    t.members = e.members, t.remaining = e.remaining
                })
            }, methods: {
                addMember: function (t) {
                    var e = this;
                    this.isProcessing = !0, $.post("/admin/subscription/team/members", {
                        email: this.emailToAdd,
                        _token: this.token
                    }).done(this.increaseMembers).fail(function (t) {
                        e.errors = JSON.parse(t.responseText)
                    }), t.preventDefault()
                }, increaseMembers: function (t) {
                    this.members.push(t), this.isProcessing = !1, this.emailToAdd = "", this.remaining--, t.id ? flash("This developer has been added to your team!") : flash("This developer has been invited to your team!")
                }, removeMember: function (t, e) {
                    var n = "This team member has been removed and deactivated.";
                    $.ajax({
                        url: "/admin/subscriptions/team/members/" + t.email,
                        type: "DELETE"
                    }), "Invited" == t.status && (n = "Invitation canceled."), this.remaining++, this.members.$remove(t), flash(n), e.preventDefault()
                }, clearErrors: function () {
                    this.errors = null, this.isProcessing = !1
                }
            }
        }
    }, {}]
}, {}, [195]);